Online Compiler C

#include <stdio.h> int main() { int n; scanf("%d", &n); int min, max; scanf("%d,%d",&max,&min) 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; }
这段代码试图找出一个整数中各位数字的最大值和最小值,但存在几个问题。

首先,代码中 `scanf("%d,%d",&max,&min)` 这一行末尾缺少了分号,会导致编译错误。

其次,逻辑上存在一个关键问题:你试图用 `max` 和 `min` 来存储数字中的最大和最小位,但在读取输入时,你让用户输入了 `max` 和 `min` 的初始值,这并不合理。实际上,你应该从数字 `n` 的各位数字中找出最大和最小值,而不是让用户预先指定。

- 检查代码中是否有缺少分号的地方。
- 思考如何正确初始化 `max` 和 `min`,使得它们能从数字 `n` 的各位数字中开始比较。例如,可以用 `n` 的第一位数字来初始化它们。