#include <stdio.h>
int main() {
int n;
scanf("%d", &n);
int num, max, min;
scanf("%d", &num);
max = num;
min = num;
for (int i = 1; i < n; i++) {
scanf("%d", &num);
if (num > max) {
max = num;
}
if (num < min) {
min = num;
}
}
int result = max - min;
printf("%d", result);
return 0;
}
这段代码的功能是:从用户输入中读取一个整数 n,然后读取 n 个整数,找出这 n 个数中的最大值和最小值,最后输出它们的差值。
代码整体逻辑是正确的,但有一个潜在问题需要注意。
- 当 n 为 0 或负数时,程序会尝试读取第一个数并赋值给 max 和 min,但此时实际上没有有效输入,会导致未定义行为。可以考虑在读取 n 后检查 n 是否大于 0。
- 如果 n 为 1,程序也能正确运行,因为只有一个数时最大值和最小值相同,差值为 0。