掷骰子
1.问题描述
骰子是一个有六个面的正方体,每个面分别印有1~6之间的小圆点代表点数。假设这个游戏的规则是:两个人轮流掷骰子6次,并将每次投掷的点数累加起来。点数多者获胜;点数相同为平局。
要求编写程序模拟这个游戏的过程,并求出玩100盘之后谁才是最终的获胜者。
2.问题分析
先必须搞一个随机数,我用的是
#include<stdlib.h> srand((unsigned int)(time(NULL)));
这个随机数是完全随机的,而且会改变。不要忘记加头文件
要得到这个随机数除以6的余数 就是用rand()%6,这算出来的数是0~5 ,然后加1,就是rand()%6+1
然后需要用到for循环 记录每个人点数的和
再定义两个变量,记录获胜的局数
3.程序
#include<iostream> #include<stdlib.h>//注意头文件不要忘 using namespace std; int main() { srand((unsigned int)(time(NULL)));//根据时间随机生成随机数 int a, b, a1, a2, b1, b2;//a,b是两个人 b1 = b2 = 0;//给这个每个人获胜的局数 先初始化 for (a = 1; a <= 100; a++)//这是一百局 { a1 = a2 = 0; for (b = 1; b <= 6; b++)//这是一局中两个人掷骰子的点数 { a1 = a1 + rand()%6 + 1; a2 = a2 + rand()%6 + 1; } if (a1 > a2) b1++;//b1加一分 else if (a1 < a2) b2++;//b2加一分 } if (b1 > b2)//这是比总数了 cout << "a" << endl; else if (b1 < b2) cout << "b" << endl; else cout << "a and b" << endl;//如果相同,就算平局 return 0; }