C语言关于while循环的问题

2025-03-23 17:57:22
推荐回答(3个)
回答1:

你看你有一行是
long num;
这行说的是num是一个长整形变量。
然后你用scanf赋值,你赋的'a','b'这样的字符。
这导致scanf函数的输入错误。返回0
0有付给啦status。0!=1当然是正确的所以继续循环。
\微笑

回答2:

你只有输入一个ASCII码值为1的才会结束循环,你的status!=1这样的条件设置有问题,并且你循环体中和循环体外面的:status=scanf("%ld",&num); 语句有问题,格式输入函数没有返回值吧。

回答3:

scanf()函数返回的值为:正确按指定格式输入变量的个数;
因为输入字母时,就没有正确输入指定格式的变量,返回值为0,而0!=1永远成立,所以陷入无限循环