题目题解
#include <stdio.h>
int main() {
int n;
scanf("%d", &n); // 读入序列中的数的个数
int max = -1, min = 1001; // 初始化最大值和最小值
/* 将最大值初始化为 -1 的原因是:输入范围:根据题目,输入的整数不超过 1000,并且是负数,因此 -1 是一个合适的初始值,因为它小于任何输入的可能值。这样可以确保在第一次比较时,任何实际输入的数都会被视为新的最大值。
确保逻辑有效:初始化为一个小于输入数据范围的值可以避免在第一次输入时未被更新的情况。如果将 maxVal 初始化为 0 或更高的值,那么如果所有输入都是负数,maxVal 将永远不会更新。*/
for (int i = 0; i < n; i++)
{
int num;
scanf("%d", &num);
if (num > max)
{
max = num;
}
if (num < min)
{
min = num;
}
}
int span = max - min; // 计算跨度
printf("%d\n", span);
return 0;
}