作业帮 > 综合 > 作业

一个很简单的C语言问题,我就是想实现:输入一系列数字,然后以0为标志结束输入,再输出之前输入的数字

来源:学生作业帮 编辑:作业帮 分类:综合作业 时间:2024/05/15 14:35:20
一个很简单的C语言问题,我就是想实现:输入一系列数字,然后以0为标志结束输入,再输出之前输入的数字
#include
#include
int main()
{
int a[10];
int i=0;int n=0;
while(a[i]!=0)
{
scanf("%d",&a[i]);
fflush(stdin);
i++;
}
n=i;
printf("\n");
for(i=0;i
a[10] 没有初始化,里面装的是上一次使用的数据,不知道具体是多少呢- -|||
建议你先全部初始化为,再用do while 或者先输入a[0] 再循环.
而且,最近老是看见人用 fflush(stdin); 有必要吗.
问一下,你的输入数据是怎么输入的,如果是 先将所有数据都输入再按回车的话就有问题了.
因为你所有数据都在缓冲区里,你读完一个数据之后就清空缓冲区了,结果后面的数据都被清空了.如果是每输入一个数据,按回车就没事.不过那一句仍然很多余,顺便说一下,fflush(stdin); 貌似只能用于VC(微软自己扩展的)
而且嘛,你是先 i++ 在判断 a[i] 是否等于零的,一直在判断你为输入的数据是否等于0,应该改为 a[i-1]; 在循环体之前输入a[0] 或者用do while 算了
或者直接就给一个死循环,然后再循环体里面判断a[i] 是否等于 0 等于就break
还有 ,n=0..杯具了吧,循环结束后 i >=0 所以基本上不会有输出.应该是
n=i