问题描述:
骰子是一个有六个面的正方体,每个面分别印有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 }
标签:编程,掷骰子,rand0,点数,打卡,include,c1 From: https://www.cnblogs.com/qmz-znv2/p/17435923.html