假定一维整型数组a[n]中的每个元素值均在[0,200]区间内,用C++函数编写一个算法,分别统计出落在[0,20],[21,50],[51,80],[81,130],[131,200]等各区间内的元素个数。
时间: 2024-09-16 09:05:11 浏览: 33
基于一维标定物和改进进化策略的相机标定
你可以使用C++的循环和条件判断来实现这个功能,这里提供一种简单的解决方案:
```cpp
#include <iostream>
int countElements(int a[], int n, std::pair<int, int> ranges[]) {
int counts[5] = {0}; // 初始化计数器数组
for (int i = 0; i < n; i++) {
// 检查当前元素是否在给定的范围内
for (int j = 0; j < 5 && a[i] >= ranges[j].first && a[i] < ranges[j].second; j++) {
counts[j]++;
}
}
return counts;
}
// 定义各个范围
std::pair<int, int>[] ranges = {{0, 20}, {21, 50}, {51, 80}, {81, 130}, {131, 200}};
int main() {
int n;
std::cout << "Enter the size of the array: ";
std::cin >> n;
int a[n];
std::cout << "Enter the elements of the array: ";
for (int i = 0; i < n; i++) {
cin >> a[i];
}
int result[counts.size()] = countElements(a, n, ranges);
for (int i = 0; i < 5; i++) {
std::cout << "Number of elements in range [" << ranges[i].first << ", " << ranges[i].second << "): " << result[i] << std::endl;
}
return 0;
}
```
在这个程序中,`countElements` 函数接收一个数组、数组长度以及包含五个区间的结构体数组 `ranges`。它遍历数组并检查每个元素属于哪个区间,然后更新相应的计数器。在 `main` 函数中,用户输入数组的大小和元素,调用 `countElements` 并打印结果。
阅读全文