用C语言显示0-9之间的1000个真随机数,显示出现的0-4所有数字的平均值,显示出现次数最多的数字
时间: 2024-10-18 18:08:13 浏览: 19
在C语言中,你可以使用标准库的rand()函数生成伪随机数,然后结合一些辅助函数来满足上述需求。首先,你需要包含 `<stdlib.h>` 和 `<time.h>` 来使用随机数生成功能以及时间管理。
以下是一个简单的示例程序,它会生成并显示0-9之间的1000个随机数,并计算出每个数字0-4的平均值以及出现最频繁的数字:
```c
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
// 函数用于生成0-9的随机数
int random_number(void) {
return rand() % 10;
}
// 计算数组元素的平均值
double average(int arr[], int size) {
double sum = 0.0;
for (int i = 0; i < size; i++) {
sum += arr[i];
}
return sum / size;
}
// 统计字符出现次数并找出最大次数的那个字符
char find_most_frequent(char *str, int len) {
char freq[5] = {0}; // 初始化一个数组记录每个数字的出现次数
for (int i = 0; i < len; i++) {
if (freq[str[i]-'0'] == 0) {
freq[str[i]-'0'] = 1; // 如果首次遇到,则初始化为1
} else {
freq[str[i]-'0']++; // 遇到已知数字,加一
}
}
int max_freq = 0, most_frequent_char = '0';
for (int i = 0; i <= 4; i++) {
if (freq[i] > max_freq) {
max_freq = freq[i];
most_frequent_char = '0' + i;
}
}
return most_frequent_char;
}
int main() {
srand(time(0)); // 设置随机种子,保证每次运行结果不同
int random_arr[1000]; // 存储1000个随机数
for (int i = 0; i < 1000; i++) {
random_arr[i] = random_number();
}
printf("Average of numbers 0-4: %.2f\n", average(random_arr + 5, 5)); // 取前5个数字求平均
char most_frequent = find_most_frequent((char*)random_arr, 1000); // 找出现频率最高的数字
printf("Most frequent number between 0 and 4: %d\n", most_frequent);
return 0;
}
```
注意,这个程序假定输入的是1000个连续存储的随机数,但实际上rand()返回的是一个范围内的伪随机整数。在这个例子中,我们为了方便统计,将5个特定数字(0-4)从原始数组中挑出来计算平均值。
阅读全文