在线编译器 C

#include <stdio.h> int main() { int n; scanf("%d", &n); int min, max; min=max=n%10; while (n > 0) { int last = n % 10; if (last<min)min=last; if (last>max)max=last; n /= 10; } printf("%d ,%d",max, min); return 0; }
这段代码的功能是:读取一个整数,然后找出这个整数中每一位数字的最大值和最小值,最后输出最大值和最小值。

代码的思路是:先取最后一位数字作为初始的min和max,然后循环处理每一位数字,不断更新min和max。

- 代码在初始化min和max时使用了n%10,但如果n是负数,n%10的结果会是负数,这会导致后续比较出错。可以考虑如何处理负数的情况。
- 另外,如果输入的n是0,循环条件n>0不成立,会直接跳过循环,但此时min和max已经被初始化为0,输出结果会是0和0,这可能是正确的,但需要确认是否满足题目要求。