📌  相关文章
📜  用于大小为 2 的组之间的最大差异的 C++ 程序(1)

📅  最后修改于: 2023-12-03 15:27:10.794000             🧑  作者: Mango

用于大小为 2 的组之间的最大差异的 C++ 程序

本文将介绍一个用于计算大小为2的组之间最大差异的C++程序。这个程序可以读取一个包含一系列大小为2的组的整数序列,然后计算这些序列之间的最大差异。

程序设计说明

该程序的主要思路是通过遍历整个序列,寻找其中的最大值和最小值,然后计算它们之间的差值并保存下来。最后将这些差值进行比较,找到其中的最大值即为所求。

代码说明

首先,我们需要定义一个函数来读取整数序列。代码如下:

vector<pair<int, int>> read_input() {
    int n;
    cin >> n;

    vector<pair<int, int>> nums(n);
    for (int i = 0; i < n; i++) {
        cin >> nums[i].first >> nums[i].second;
    }

    return nums;
}

该函数使用了一个vector来保存整数序列。在读取整数序列时,我们使用pair<int, int>来保存每个大小为2的组。这里使用了一个循环来读取每个组中的两个整数。

接下来,我们需要定义一个函数来计算所有组之间的最大差异。代码如下:

int get_max_diff(vector<pair<int, int>> nums) {
    int max_val = INT_MIN;
    int min_val = INT_MAX;

    for (int i = 0; i < nums.size(); i++) {
        max_val = max(max(max_val, nums[i].first), nums[i].second);
        min_val = min(min(min_val, nums[i].first), nums[i].second);
    }

    return max_val - min_val;
}

该函数使用了两个变量max_val和min_val来保存整个序列中的最大值和最小值。在遍历每个大小为2的组时,我们分别将这两个变量更新为当前组中的最大值和最小值。

最终,该函数返回的就是整个序列中最大值和最小值之间的差值。

完整代码

下面是完整的C++代码:

#include <iostream>
#include <vector>
#include <climits>

using namespace std;

vector<pair<int, int>> read_input() {
    int n;
    cin >> n;

    vector<pair<int, int>> nums(n);
    for (int i = 0; i < n; i++) {
        cin >> nums[i].first >> nums[i].second;
    }

    return nums;
}

int get_max_diff(vector<pair<int, int>> nums) {
    int max_val = INT_MIN;
    int min_val = INT_MAX;

    for (int i = 0; i < nums.size(); i++) {
        max_val = max(max(max_val, nums[i].first), nums[i].second);
        min_val = min(min(min_val, nums[i].first), nums[i].second);
    }

    return max_val - min_val;
}

int main() {
    vector<pair<int, int>> nums = read_input();
    cout << get_max_diff(nums) << endl;

    return 0;
}

使用该程序,我们可以输入下面的一组数据来测试它的效果:

4
1 4
3 2
7 2
2 8

输出结果为6,与预期相符。