C++ 算法:求n个数的最大值和最小值 (入门)

问题描述:

任意输入 n 个整数,把它们的最大值和最小值求出来。

输入描述:

输入只有一行,包括一个整数 n (1 <= n <= 20),后面跟着 n 个数。每个数的范围在 0 到 32767 之间。

输出描述:

输出只有一行,包括 2 个整数,分别代表最大值和最小值。

示例输入 1:

5 1 99 3 6 0

示例输出 1:

99 0

代码实现:

#include <iostream>
#include <vector>
#include <algorithm>

int main() {
    int n;
    std::cin >> n;
    
    std::vector<int> nums(n);
    for (int i = 0; i < n; i++) {
        std::cin >> nums[i];
    }
    
    int maxNum = *std::max_element(nums.begin(), nums.end());
    int minNum = *std::min_element(nums.begin(), nums.end());
    
    std::cout << maxNum << ' ' << minNum << std::endl;
    
    return 0;
}

代码解析:

  1. 头文件: 代码中包含了三个头文件:iostream 用于输入输出操作;vector 用于使用动态数组;algorithm 用于使用 max_elementmin_element 算法。
  2. 输入: 代码首先读取整数 n,然后使用 std::vector 创建一个大小为 n 的数组 nums,并将输入的 n 个整数存储在数组中。
  3. 求最大值和最小值: 代码使用 std::max_element(nums.begin(), nums.end())std::min_element(nums.begin(), nums.end()) 算法分别找到数组 nums 中的最大值和最小值。
  4. 输出: 代码将最大值和最小值输出到控制台。

总结:

本代码演示了使用 C++ 算法库中的 max_elementmin_element 函数来高效地找到数组中的最大值和最小值。这是解决类似问题的一种简单而常见的方法。

其他方法:

除了使用算法库,你也可以使用循环来遍历数组并手动比较每个元素,从而找到最大值和最小值。但是,使用算法库通常更简洁、高效。

学习建议:

  1. 尝试理解代码中每个部分的作用。
  2. 尝试修改代码,例如:
    • 将输入改为从文件中读取。
    • 使用循环实现最大值和最小值的查找。
    • 添加错误处理,例如当输入的 n 不合法时,如何处理。
  3. 学习更多 C++ 算法库中的函数,例如 sortfind 等。
C++ 算法:求n个数的最大值和最小值 (入门)

原文地址: https://www.cveoy.top/t/topic/qldn 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录