下面是一个简单的C语言程序,模拟掷两个骰子共6000次,并统计每个可能的点数组合(从2到12)出现的次数: ```c #include #include #include #define DICE_FACES 6 #define ROLLS 6000 int main() { // 初始化随机数种子 srand(time(NULL)); // 创建一个数组来存储每个点数(2-12)的出现次数 int counts[11] = {0}; // 从index 0到10对应点数2到12 // 开始模拟掷骰子 for (int i = 0; i < ROLLS; ++i) { int dice1 = rand() % DICE_FACES + 1; // 掷第一个骰子 int dice2 = rand() % DICE_FACES + 1; // 掷第二个骰子 int sum = dice1 + dice2; // 计算两个骰子的点数和 // 更新相应点数和的出现次数 if (sum >= 2 && sum <= 12) { counts[sum - 2]++; // 索引从0开始,所以要减去2 } } // 打印统计结果 printf("Dice Roll Statistics:\n"); for (int i = 0; i < 11; ++i) { int sum = i + 2; // 还原到实际的点数和 printf("Sum of %d appeared %d times\n", sum, counts[i]); } return 0; } ``` 在这个程序中,我们首先包含了必要的头文件,并定义了常量来表示骰子的面数和模拟的掷骰子次数。然后,我们使用`srand(time(NULL))`来初始化随机数生成器的种子。 我们创建了一个大小为11的整数数组`counts`来存储每个点数(从2到12)的出现次数。数组的索引从0开始,所以我们使用`sum - 2`来作为数组的索引。 接下来,我们使用一个循环来模拟掷骰子的过程。在每次循环中,我们分别掷两个骰子,计算它们的点数和,并更新相应点数和的出现次数。 最后,我们打印出每个点数和的出现次数。注意,在打印时,我们需要将数组的索引加2来还原到实际的点数和。

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