Онлайн компилятор 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-d, min-d); return 0; }
这段代码试图找出一个整数中各位数字的最大值和最小值,然后输出它们的差值。但代码中存在多个语法错误和逻辑问题。

- 第5行声明变量时缺少逗号,应该写成 `int min, max;` 而不是 `int min max;`。
- 第6行 `scanf` 的格式和参数有误,`scanf("%d,%d",&max&min)` 中 `&max&min` 缺少逗号,且格式字符串中的逗号会导致输入必须包含逗号,这可能不是你的本意。另外,变量 `min` 和 `max` 在使用前没有初始化,这会导致未定义行为。
- 第12行 `printf` 中使用了未定义的变量 `d`,应该是想输出 `max - min`。