酷代码 AI
菜单
服务商

C++ 实现找出 n 个整数中的最小值和次小值

以下是使用 C++ 语言解决该问题的代码: ```cpp #include <iostream> #include <climits> using namespace std; int main() { int n; // 读取数组长度 cin >> n; // 初始化最小值和次小值为最大整数 int minVal = INT_MAX; int secondMin = INT_MAX; for (int i = 0; i < n; i++) { int num; // 读取数组中的每个元素 cin >> num; if (num < minVal) { // 如果当前元素小于最小值,更新次小值和最小值 secondMin = minVal; minVal = num; } else if (num < secondMin && num != minVal) { // 如果当前元素小于次小值且不等于最小值,更新次小值 secondMin = num; } } // 输出最小值和次小值 cout << minVal << " " << secondMin << endl; return 0; } ``` ### 代码解释: 1. **初始化**:首先读取数组的长度 `n`,然后将 `minVal` 和 `secondMin` 初始化为 `INT_MAX`,这是 `climits` 库中定义的最大整数值。 2. **遍历数组**:使用 `for` 循环读取数组中的每个元素。对于每个元素,进行如下判断: - 如果当前元素小于 `minVal`,则更新 `secondMin` 为原来的 `minVal`,并更新 `minVal` 为当前元素。 - 如果当前元素小于 `secondMin` 且不等于 `minVal`,则更新 `secondMin` 为当前元素。 3. **输出结果**:最后输出 `minVal` 和 `secondMin`。 ######[AI问答 | 439点数解答 | 2026-05-23 20:59:58]

相关提问
本站限时免费提问中
实用工具查看更多
Linux在线手册 [开发类]
Jquery在线手册 [开发类]
今日油价 [生活类]
图片互转base64 [开发类]
时间转换器 [开发类]