用C语言显示0-9范围内的一千个真随机数,并统计每个数出现的次数
时间: 2024-10-15 18:29:01 浏览: 29
在C语言中,生成真随机数通常需要使用系统的随机数功能,但请注意,C标准库提供的rand()函数并不保证真正的随机性。这里我们假设您使用的是更安全的随机数生成器,比如POSIX API中的random()函数。统计每个数字出现的次数通常需要用到哈希表(例如数组)或者动态数据结构,例如std::map或unordered_map在C++中。
以下是一个简单的示例,展示了如何在控制台上打印0-9之间的一千个随机数并使用计数数组统计每个数字出现的次数:
```c
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#define MAX_NUM 10
#define COUNTS 10
int counts[MAX_NUM + 1] = {0}; // 初始化计数数组
void print_random_numbers(int count) {
srand(time(NULL)); // 设置初始随机种子
for (int i = 0; i < count; ++i) {
int random_num = rand() % MAX_NUM; // 生成0-9的随机数
printf("%d ", random_num);
counts[random_num]++;
}
printf("\n");
}
int main() {
int num_of_numbers = 1000;
print_random_numbers(num_of_numbers);
printf("Number counts:\n");
for (int i = 0; i <= MAX_NUM; ++i) {
printf("%d: %d\n", i, counts[i]);
}
return 0;
}
```
在这个示例里,每次循环都会生成一个0-9的随机数,然后更新对应的计数。最后,遍历计数数组并输出每个数字及其出现的次数。
阅读全文