打卡 c语言趣味编程 掷骰子

发布时间 2023-05-26 22:03:48作者: 起名字真难_qmz

问题描述:

  骰子是一个有六个面的正方体,每个面分别印有1~6之间的小圆点代表点数。假设这个游戏的规则是:两个人轮流掷骰子6次,并将每次投掷的点数累加起来。点数多者获胜:点数相同则为平局。要求编写程序模拟这个游戏的过程,并求出玩100盘之后谁是最终的获胜者。

思路:

  要得到6个不同的随机值,只需要调用rand0函数,并取rand0函数除以6的余数即可,即rand0%6。但这样得到的是在0~5之间的6个随机数,再将其加1,即rand0%6+1,就可得到1~6之间的数。

流程图:

代码实现:

 1 #include <stdio.h>
 2 #include <stdlib.h>
 3 
 4 using namespace std;
 5 
 6 int main(){
 7 int d1,d2,c1,c2,i,j;
 8 c1 = c2 = 0;
 9 randomize();
10 /*初始化随机数产生器*/
11 for(i=1;i<=100;1++){
12 /*模拟游戏过程*/
13 d1 = d2 = 0;
14 for(j=1;j<=6;j++){
15 /*两个人轮流掷骰子*/
16     d1 = d1+random(6)+1;
17     d2 = d2+random(6)+1;
18 if (d1>d2)
19     c1++;
20 /*累加获胜盘数*/
21 else
22     if (d1<d2)
23         c2++;
24 }
25 if (c1>c2)
26     cout << "The first win!" << endl;
27 else
28     if(c1<c2)
29         cout << "The second win!" << endl;
30     else
31         cout << "The tie." << endl;
32 return 0;
33 }