做题时编写了如下代码,但是无论如何都不能结束循环。希望帮助。
include
int main() {
int a , i , num[3] , j=0;
while((a=scanf("%d",&i))!=-1) {
if(a) {
num[j++] = i;
}
}
printf("%d\n",num[0]*num[1]*num[2]%1000);
}
2个修改办法
while((a=scanf("%d",&i))!=EOF)
这样写,按ctrl+z 结束循环
while((scanf("%d",&i), i)!=-1)
这样写,输入-1结束循环
while((a=scanf("%d",&i))!=-1)
我的理解执行顺序为
scanf("%d",&i))!=-1
a=scanf("%d",&i))
后面一个 是赋值语句 永远为true所以不会停止
因为scanf只读取数值不读取字符,字符就会留在缓冲区相当于下一次输入,所以就死循环了