以下是一个简单的C语言程序,该程序模拟了掷两个骰子共6000次,并统计每个可能点数(2到12)出现的次数: ```c #include #include #include #define DICE_SIDES 6 #define ROLLS 6000 #define MAX_POINTS 13 // 包含从2到12的点数 int main() { int dice1, dice2, sum, i, counts[MAX_POINTS] = {0}; // 初始化计数数组为0 // 初始化随机数生成器 srand(time(NULL)); // 模拟掷骰子 for (i = 0; i < ROLLS; i++) { dice1 = rand() % DICE_SIDES + 1; // 掷第一个骰子 dice2 = rand() % DICE_SIDES + 1; // 掷第二个骰子 sum = dice1 + dice2; // 计算点数之和 // 统计点数 if (sum >= 2 && sum <= 12) { // 确保点数在有效范围内 counts[sum]++; } } // 打印统计结果 printf("Points\tFrequency\n"); for (i = 2; i < MAX_POINTS; i++) { printf("%d\t\t%d\n", i, counts[i]); } return 0; } ``` 该程序首先定义了几个常量:`DICE_SIDES`(骰子的面数)、`ROLLS`(掷骰子的次数)和`MAX_POINTS`(最大可能的点数之和加1,因为我们用数组索引表示点数)。 然后程序定义了一个整数数组`counts`,用于统计每个点数出现的次数。数组初始化为0。 接着,程序使用`srand(time(NULL))`初始化随机数生成器,确保每次运行程序时生成的随机数序列都不同。 在模拟掷骰子的循环中,程序为每个骰子随机生成一个1到6的整数,计算两个骰子的点数之和,然后更新`counts`数组中对应索引的值。注意,数组索引从0开始,但点数从2开始,所以我们检查`sum`是否在有效范围内(2到12),然后才更新计数数组。 最后,程序打印出每个点数及其对应的频率。

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