当前位置: 代码迷 >> C语言 >> [求助]为什么这个程序是错误的
  详细解决方案

[求助]为什么这个程序是错误的

热度:108   发布时间:2007-11-18 17:18:04.0
同意二楼的说法!
----------------解决方案--------------------------------------------------------
以下是引用now在2007-11-17 10:03:36的发言:

#include<stdio.h>
int main(void)
{
char a[5];
int i=0;

while(a[i]!='#'&& i<5)
{
scanf("%c",&a[i++]);

}
i=0;
while(a[i]!='#'&& i<5)
{
printf("%c",a[i++]);
}
return 0;
}

// 可改为这样。

我在编译器里运行了..可以得到预期的结果...
LZ写的有点混乱..


----------------解决方案--------------------------------------------------------
以下是引用liweiqing在2007-11-12 21:44:51的发言:
main()
{int a[5],i=0;
scanf("%d",&a[i++]);
while(a[i]!='#'&&i<5)
scanf("%d",&a[i++]);
i=0;
while(a[i]!='#'&&i<5)
printf("%d ",a[i++]);
}


我输入:1 2 3 #
为什么结果不是: 1 2 3 啊

程序死循环。


//--------------------------------------------------------------------//
去掉 a[i] != '#' 吧,并且请不要输入非字符,输入5个数字结束循环吧。

int a[5],i=0;
scanf("%d",&a[i++]);
while(i<5)
scanf("%d",&a[i++]);
i=0;
while(i<5)
printf("%d ",a[i++]);


输入: 1 36 98 75 41
输出: 1 36 98 75 41


----------------解决方案--------------------------------------------------------

“#”不是int类型的
不能放到int型数组中去


----------------解决方案--------------------------------------------------------
lw_China解释的不错.
----------------解决方案--------------------------------------------------------
main()
{int a[5],i=0;
scanf("%d",&a[i++]); /*这条语句有什么用?
while(a[i]!='#'&&i<5)
scanf("%d",&a[i++]);
i=0;
while(a[i]!='#'&&i<5)
printf("%d ",a[i++]);
}

----------------解决方案--------------------------------------------------------
为什么不试着以输入-1作为结束符呢?
----------------解决方案--------------------------------------------------------
  相关解决方案