Online Compiler C

#include <stdio.h> int main() { int N,max,A,B; scanf("%d",&N); while(N>0) { A= N % 10; B=(N/10)%10; if(A>=B) max=A; else max = B; N = N/10; } printf("%d",max); return 0; }
这段代码试图找出一个整数中最大的数字,但逻辑有误。它每次只比较相邻的两位数字,而不是全局比较所有数字。

- 问题在于循环中每次只比较当前个位和十位,然后丢弃个位,这样最终只得到最后两位中较大的数,而不是整个数的最大数字。
- 你需要一个变量来记录当前找到的最大值,并在每次循环中与当前个位数字比较并更新,而不是只比较相邻两位。