#include <stdio.h>
int main() {
int n;
scanf("%d",&n);
int a[100];
int min,max;
scanf("%d",&a[0]);
max=min=a[0];
for(int i=1;i<n;i++){
scanf("%d",&a[i]);
if(a[i]>max) max=a[i];
if(a[i]<min) min=a[i];
}
printf("%d\n",max-min);
return 0;
}
这段代码的功能是:先读入一个整数 n,然后读入 n 个整数存入数组,最后输出这 n 个数中最大值与最小值的差。
代码整体思路正确,但有一个潜在问题:如果用户输入的 n 大于 100,数组 a 的大小只有 100,会导致数组越界。
- 检查数组大小是否足够容纳用户输入的 n 个整数。如果 n 可能超过 100,需要调整数组大小或改用动态分配。
- 另外,当 n 为 0 或负数时,程序行为未定义,可以考虑增加对 n 合法性的判断。