掷骰子

发布时间 2023-05-08 23:34:50作者: 祝我好運

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;
}