在线编译器 C

#include <stdio.h> int main() { int n; if (scanf("%d", &n) == 1) { if (n == 0) { printf("0\n"); return 0; } int min = 9; int max=0; while (n > 0) { int digit = n % 10; if(digit<min){ min=digit; } if (digit>max){ max=digit } n /= 10; } printf("%d %d\n",min,max ); } return 0; }
这段代码试图读取一个整数,然后找出它的最小数字和最大数字并输出。代码逻辑基本正确,但有一个语法错误导致无法编译。

- 第16行 `max=digit` 后面缺少分号,C语言中每条语句必须以分号结束。
- 另外,当输入负数时,`while (n > 0)` 循环不会执行,导致min和max保持初始值(min=9, max=0),输出结果不正确。你需要考虑如何处理负数的情况。