小韦老师@神犇营-my0118-最大跨度值
题目:
描述
给定一个长度为 n 的非负整数序列,请计算序列的最大跨度值(最大跨度值 = 最大值 - 最小值)。
输入
一共 2 行,第一行为序列的个数 n(1 ≤ n ≤ 1000)。
第二行为序列的 n 个不超过 1000 的非负整数,整数之间以一个空格分隔。
输出
输出一行,表示序列的最大跨度值。
输入样例1
6
3 0 8 7 5 9
输出样例1
9
思路:
整体思路:
找到这 n 个数的最大值,最小值,最大值减去最小值即为最大跨度值。
具体步骤:
1.定义 n,并输入 n。
2.定义一个 int 型的变量 Max 用来记录最大值,并且初始化为 -1。
3.定义一个 int 型的变量 Min 用来记录最小值,并且初始化为 1010。
4.定义一个 int 型的变量 x,用来接收输入的整数。
5.用 for 循环将 n 个整数输入,并且将对每个数判断,判断是否比现在
最大的数还大,若是,它就是现在最大的数了。对每个数判断判断是否比
现在最小的数还小,若是,它就是现在最小的数了。
// n 个不大于 1000 的非负整数
// 挨个看,从第一个数,看到第 n 个
for (int i = 1; i <= n; i++) { // 进行 n 次操作
cin >> x; // 输入第 i 个整数
// 对每个数判断
// 判断是否比现在最大的数还大,若是,它就是现在最大的数了
if (x > Max) {
Max = x;
}
// 对每个数判断
// 判断是否比现在最小的数还小,若是,它就是现在最小的数了
if (x < Min) {
Min = x;
}
}
6.输出最大跨度值:
cout << Max - Min;
思考:
1°为什么 Max 要初始化为 -1?可以初始化为其他值麽?若可以,可以初始
化为哪些值?可以不初始化麽?
2°为什么 Min 要初始化为 1010?可以初始化为其他值麽?若可以,可以初始
完整代码:
#include <bits/stdc++.h>
using namespace std;
int main() {
int n;
cin >> n;
int Max = -1; // 保存到现在为止的最大值
int Min = 1010; // 保存到现在为止的最小值
int x; // 用来接收输入的整数
// n 个不大于 1000 的非负整数
// 挨个看,从第一个数,看到第 n 个
for (int i = 1; i <= n; i++) { // 进行 n 次操作
cin >> x; // 输入第 i 个整数
// 对每个数判断
// 判断是否比现在最大的数还大,若是,它就是现在最大的数了
if (x > Max) {
Max = x;
}
// 对每个数判断
// 判断是否比现在最小的数还小,若是,它就是现在最小的数了
if (x < Min) {
Min = x;
}
}
// 输出最大跨度值
cout << Max - Min;
return 0;
}