[英]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.