3. 假定一维整型数组a[n]中的每个元素值均在[0,200]区间内,用C++函数编写一个算法,分别统计出落在[0,20],[21,50],[51,80],[81,130],[131,200]等各区间内的元素个数用随机函数完成
时间: 2024-09-16 17:04:18 浏览: 53
2017.12.07.zip_10.1d_2017.12.07_C++_pastrtz
在C++中,你可以通过遍历数组并使用条件判断来实现这个功能。首先,你需要包含必要的头文件,并创建一个计数数组来存储每个区间的元素数量。然后,使用`std::random_device`和`std::mt19937`生成随机数,模拟输入的一维整型数组。以下是一个简单的示例:
```cpp
#include <iostream>
#include <vector>
#include <random>
int main() {
const int n = 100; // 假设数组长度为100
int a[n]; // 初始化数组
// 使用Mersenne Twister引擎生成随机数
std::random_device rd;
std::mt19937 gen(rd());
std::uniform_int_distribution<> dis(0, 200); // 0到200的均匀分布
// 分别填充数组
for (int i = 0; i < n; ++i) {
a[i] = dis(gen);
}
// 计算每个区间的元素个数
std::vector<int> count(5, 0); // 初始化计数器,大小为5表示5个区间
for (int num : a) {
if (num >= 0 && num <= 20)
count[0]++;
else if (num > 20 && num <= 50)
count[1]++;
else if (num > 50 && num <= 80)
count[2]++;
else if (num > 80 && num <= 130)
count[3]++;
else if (num > 130 && num <= 200)
count[4]++;
}
// 输出结果
std::cout << "各区间的元素个数分别为:\n";
for (int i = 0; i < 5; ++i) {
std::cout << "[" << i * 21 << ", " << (i + 1) * 21 - 1 << "] 区间有: " << count[i] << " 个元素\n";
}
return 0;
}
```
阅读全文