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++;
}
使用for循环 先取地址给a[i] 用IF来判断a[i]是不是等于0 等于零就break
为什么不这么些
do
{
scanf("%d",&a[i]);
i++;
}
while(a[i-1]!=0)