【发布时间】:2022-08-24 20:05:53
【问题描述】:
我有一个函数的代码,它从一个数字中返回最大的数字。要求是输入数字,直到输入不是数字的内容。当输入不是数字的东西时,程序应该停止,但在我的例子中,它只是启动一个无限循环,打印函数返回的最后一个结果。这是代码:
#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;
}
可能是什么问题?
-
那是很多 n\'s 到处都是。在 main() 中声明的 n 仅在 main() 的范围内并且永远不会改变。
-
想想
while(n)会在什么条件下停止. -
\“我一遍又一遍地做同样的事情,没有任何改变——那是怎么回事?\”100 万次迭代后——
n的值是多少?为什么没有改变?
标签: c