[英]How to stop infinite looping the output?
我有一个 function 的代码,它从一个数字中返回最大的数字。 要求是输入数字,直到输入不是数字的内容。 当输入不是数字的东西时,程序应该停止,但在我的情况下,它只是启动一个无限循环,打印 function 返回的最后一个结果。 这是代码:
#include <stdio.h>
int maxDigit(int n){
int temp = n, maxDig = 0;
while(temp){
int digit = temp % 10;
if(digit > maxDig){
maxDig = digit;
}
temp /= 10;
}
return maxDig;
}
int main()
{
int n = 1, broj;
while(n){
if(scanf("%d", &broj));
printf("%d\n", maxDigit(broj));
}
return 0;
}
可能是什么问题?
您可以查看scanf
的返回值,看看您是否读取了有效的 integer,您可以使用break
来终止循环。 main
function 中的n
变量只有一个常数值,所以我去掉了它,并以其他几种方式清理了 function。 这是我的结果代码:
...
int main() {
while (1) {
int input;
if (scanf("%d", &input) != 1) { break; }
printf("%d\n", maxDigit(input));
}
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.