编写一个C-++程序来应用一个递归函数来计算一维数组中所有数字的频率。将介于0到99 之间的随机数生成为大小为100的数组a.为该数组分配随机数 b.计算数组中所有数字的频率 c.存储所有数字的频率 d.将频率从最小到最大进行排序。 e.显示每个数字及其频率。
时间: 2023-07-16 18:17:16 浏览: 232
c/C++实现0-100的随机数
5星 · 资源好评率100%
以下是一个实现上述功能的C++程序:
```c++
#include <iostream>
#include <cstdlib>
#include <ctime>
#include <algorithm>
using namespace std;
const int SIZE = 100;
// 递归函数,用于计算数字频率
void calcFreq(int arr[], int freq[], int i) {
if (i == SIZE) {
return;
}
freq[arr[i]]++;
calcFreq(arr, freq, i + 1);
}
int main() {
int arr[SIZE];
int freq[100] = {0};
srand(time(NULL));
// 生成随机数并存储在数组中
for (int i = 0; i < SIZE; i++) {
arr[i] = rand() % 100;
}
// 计算数字频率
calcFreq(arr, freq, 0);
// 按频率排序
sort(freq, freq + 100);
// 显示每个数字及其频率
for (int i = 0; i < 100; i++) {
if (freq[i] != 0) {
cout << i << ": " << freq[i] << endl;
}
}
return 0;
}
```
该程序首先生成了一个大小为100的随机数数组,然后使用递归函数`calcFreq`计算每个数字在数组中出现的频率,并将其存储在`freq`数组中。之后,使用`std::sort`函数将`freq`数组中的频率从小到大排序,最后按照数字和频率的顺序输出结果。
阅读全文