这段代码的功能是:读入一个整数,输出它的各位数字中的最小数字和最大数字。代码先处理负数(取绝对值),然后通过循环逐位提取数字并更新最小值和最大值。 - 注意:当输入为负数时,代码用 `n = -n` 转为正数,但 `int` 类型能表示的最小负数(如 -2147483648)取绝对值后会溢出,导致结果错误。可以考虑用 `long` 或 `unsigned` 类型来避免这个问题。 - 另外,如果输入的数字包含前导零(例如 1020),当前逻辑能正确处理,但注意循环条件 `n > 0` 会跳过数字 0 本身,不过你已经在前面单独处理了 n==0 的情况,所以没问题。