当输入为0的时候结束输入 如何解决呀 c语言

题目的要求是输入数据当输入的数据等于0的时候就结束进入后面的的
我先定义了一个较大的数组 while(scanf("%d",&a[i])!=0) i++;来操作的时候没有能跳出循环 因为scanf()返回的是地址 永远为真
要如何解决呀

scanf()函数的返回值不是地址吧,应该是int值
当scanf()函数正确调用时,返回参数个数
比如:scanf("%d%d",&a,&b),当正确输入后,返回2
当scanf()遇到非法字符输入,返回0
当scanf()调用失败时,返回EOF(值为-1)
----------------------------------------
你这道题,输入数据为0的话,scanf()函数是调用成功的,你不能用返回值来作为结束循环的条件
你可以 这样
while(scanf("%d",&a[i])!=0)
{
if(a[i]==0)
break;
i++;
}
温馨提示:答案为网友推荐,仅供参考
第1个回答  2009-05-09
使用for循环 先取地址给a[i] 用IF来判断a[i]是不是等于0 等于零就break
第2个回答  2009-05-09
为什么不这么些
do
{
scanf("%d",&a[i]);
i++;

}
while(a[i-1]!=0)
相似回答