用 c++随机输入5个正整数,找出其中的第二大值,第二小值
时间: 2024-09-10 16:08:25 浏览: 43
非电类第三场上机考试试卷-D.doc
在C++中,要随机输入5个正整数并找出其中的第二大值和第二小值,我们可以采取以下步骤:
1. 使用标准输入输出流来获取用户输入的正整数。
2. 将这些整数存储在数组或向量中。
3. 对数组或向量进行排序。
4. 从排序后的数组或向量中直接提取第二大值和第二小值。
下面是实现上述步骤的一个简单的C++代码示例:
```cpp
#include <iostream>
#include <algorithm> // 用于std::sort
#include <vector>
#include <cstdlib> // 用于rand()和srand()
#include <ctime> // 用于time()
int main() {
// 初始化随机数种子
srand(static_cast<unsigned int>(time(0)));
// 创建一个向量存储5个随机正整数
std::vector<int> numbers;
// 随机生成5个正整数并存储
for (int i = 0; i < 5; ++i) {
int num = rand() % 100 + 1; // 生成1到100之间的随机数
numbers.push_back(num);
}
// 对向量中的整数进行排序
std::sort(numbers.begin(), numbers.end());
// 输出排序后的数组,检查结果
std::cout << "排序后的数组: ";
for (int num : numbers) {
std::cout << num << " ";
}
std::cout << std::endl;
// 输出第二大值和第二小值
std::cout << "第二大值: " << numbers[3] << std::endl;
std::cout << "第二小值: " << numbers[2] << std::endl;
return 0;
}
```
需要注意的是,这个示例代码使用了`rand()`函数来生成随机数,`srand()`和`time()`用于设置随机种子,以确保每次运行程序时生成的随机数序列不同。`<cstdlib>`和`<ctime>`头文件是必须包含的。
在实际应用中,为了避免得到重复的数值,可能需要在`rand()`函数的基础上添加一些逻辑处理。
阅读全文