下面是一个使用C语言编写的程序,用于模拟掷两个骰子共6000次,并统计每种点数的出现次数。 ```c #include #include #include #define TOTAL_ROLLS 6000 #define DIE_FACES 6 int main() { // 用于存储每个点数的出现次数的数组 int rolls[1 + 2 * DIE_FACES] = {0}; // 最小点数2,最大点数12 // 使用当前时间初始化随机数生成器 srand(time(NULL)); // 模拟掷骰子过程 for (int i = 0; i < TOTAL_ROLLS; ++i) { // 掷第一个骰子 int die1 = rand() % DIE_FACES + 1; // 掷第二个骰子 int die2 = rand() % DIE_FACES + 1; // 计算两个骰子的点数和 int sum = die1 + die2; // 累加对应点数的计数 rolls[sum]++; } // 打印统计结果 for (int i = 2; i <= 2 * DIE_FACES; ++i) { printf("点数 %d 出现了 %d 次\n", i, rolls[i]); } return 0; } ``` 该程序首先定义了一个整数数组`rolls`来保存每种点数的出现次数,数组的大小为13(从点数2到点数12)。然后,它使用`srand(time(NULL))`来初始化随机数生成器。 接下来,程序使用一个循环来模拟掷两个骰子共6000次。在每次循环中,它分别掷两个骰子(使用`rand() % DIE_FACES + 1`),计算两个骰子的点数和,并更新`rolls`数组中对应点数的和的次数。 最后,程序遍历`rolls`数组并打印每种点数的出现次数。 请注意,由于该程序使用了`rand()`函数来生成随机数,因此每次运行程序时结果可能会有所不同。但是,如果程序运行足够多次,每种点数的出现次数应该接近其预期的概率(1/36)。

点赞(0)
×
关注公众号,登录后继续创作
或点击进入高级版AI
扫码关注后未收到验证码,回复【登录】二字获取验证码
发表
评论
返回
顶部