永发信息网

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

答案:1  悬赏:0  手机版
解决时间 2021-08-13 18:53
  • 提问者网友:寂寞撕碎了回忆
  • 2021-08-13 13: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
最佳答案
  • 五星知识达人网友:舍身薄凉客
  • 2021-08-13 13:57

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


我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯