题目:
模拟骰子投6000次,并计算每一面出现的概率
解析:
6000次,首先想到用数组记录六个面各出现次数
其次,使用随机数(1~6的数)模拟骰子
然后统计1~6每个数出现的几次,最后除以6000,输出即可
逻辑:
先循环随机数模拟投掷,将结果记录于数组
再循环遍历数组计算概率
参考代码:
// 模拟骰子投6000次,并计算每一面出现的概率
#include <stdio.h>
#include <time.h>
int main()
{
int arr[6] = { 0 };
int start = 1;
int end = 6000;
int face = 0;
srand((unsigned int)time(NULL));
for (start = 1; start <= end; start++) // 模拟掷骰子6000次
{
face = rand() % 6 + 1;
arr[face - 1] += 1; // 统计六面出现次数
}
int i = 0;
double frequency = 0;
for (i = 0; i < 6; i++)
{
frequency = arr[i] / 6000.0000 * 100;
printf("点数%d出现概率:%.2f%%\n",i+1,frequency);
}
return 0;
}
运行结果: