Online Compiler C

#include<stdio.h> int main() { int n,max=0,min=9,d; scanf("%d",&n); while(n>0){ d=n%10; if (d>max) max=d; if (d<min) min=d; n=n/10;} return 0; }
这段代码的功能是:从用户输入的一个整数中,找出它的最大数字和最小数字。程序通过循环逐位取出数字,并更新最大值和最小值。

- 你的代码中,变量 `min` 初始化为 9,这通常可以工作,但如果输入的数字中所有位都大于等于 9(比如输入 999),那么 `min` 会保持为 9,这是正确的。但考虑一下:如果输入的数字是负数,你的循环条件 `n>0` 会导致循环不执行,那么 `max` 和 `min` 会保持初始值 0 和 9,这不符合预期。你需要思考如何处理负数的情况。
- 另外,你的代码没有输出结果。题目可能要求你打印出最大和最小数字,但当前程序只是计算了它们却没有显示。检查一下是否需要添加 `printf` 语句来输出 `max` 和 `min`。