我需要找到整数的最大数字。
我尝试了一下,但它没有做任何事情:
#include<stdio.h>
int main(){
int n,max,min,i;
printf("Give me a positive integer: ");
scanf("%d", &n);
i=1;
while(n>=0){
if(i==1) {min=n%10; max=n%10;}
else {if(min>(n%10)) min=(n%10); if(max<(n%10)) max=(n%10);}
n=(int)n/10;
}
printf("max. figure:%d min. figure:%d ", max, min);
return 0;
}
这里有两个问题:
首先,您永远不会在循环内部更改i
。结果,if(i==1)
始终是正确的,因此您在每次迭代中重置min
和max
。您需要在循环结束时增加i
。
第二,您有一个无限的循环。如果n
为正或零,则测试(n>=0)
将是正确的。您想在n
变为0后退出循环,因此将测试更改为n>0
。
while(n>0){
if(i==1) {
min=n%10;
max=n%10;
} else {
if (min>(n%10))
min=(n%10);
if(max<(n%10))
max=(n%10);
}
n=(int)n/10;
i++;
}