1 回答
TA贡献1842条经验 获得超21个赞
给,已经编译运行确认:
#include <iostream>
#include <time.h>
using namespace std;
enum Ball
{
white,
black
};
int main(int argc, char *argv[])
{
//定义袋中黑白球的数目
int BlackNum;
int WhiteNum;
//由用户指定袋中的黑白球数目
cout << "请输入袋中白球的数目" << endl;
cin >> WhiteNum;
cout << "请输入袋中黑球的数目" << endl;
cin >> BlackNum;
//初始化随机数种子
srand((unsigned)time(NULL));
int times = 0; //取球的次数
while ((BlackNum + WhiteNum) > 1)
{
++times;
int FirstBall;
int SecondBall;
//每次取得的第一个和第二个球
if (WhiteNum == 0) //袋中已没有白球,则只能取黑球
{
FirstBall = black;
cout << "第 " << times << "次取出的第一个球为黑色" << endl;
--BlackNum;
}
else if (BlackNum == 0)//袋中已没有黑球
{
FirstBall = white;
cout << "第 " << times << "次取出的第一个球为白色" << endl;
--WhiteNum;
}
else //否则随机取得一个球
{
FirstBall = rand() % 2;
if (FirstBall == white)
{
cout << "第 " << times << "次取出的第一个球为白色" << endl;
--WhiteNum;
}
else
{
cout << "第 " << times << "次取出的第一个球为黑色" << endl;
--BlackNum;
}
}
if (WhiteNum == 0) //袋中已没有白球,则只能取黑球
{
SecondBall = black;
cout << "第 " << times << "次取出的第一个球为黑色" << endl;
--BlackNum;
}
else if (BlackNum == 0)//袋中已没有黑球
{
SecondBall = white;
cout << "第 " << times << "次取出的第一个球为白色" << endl;
--WhiteNum;
}
else
{
SecondBall = rand() % 2;
if (FirstBall == white)
{
cout << "第 " << times << "次取出的第二个球为白色" << endl;
--WhiteNum;
}
else
{
cout << "第 " << times << "次取出的第二个球为黑色" << endl;
--BlackNum;
}
}
//根据取出的两个球的颜色是否相等来觉得是放黑球进去还是白球进去
if (FirstBall == SecondBall)
{
++WhiteNum;
}
else
{
++BlackNum;
}
}
if (WhiteNum == 1)
{
cout << "最后一个球为白球" << endl;
}
else
cout << "最后一个球为黑球" << endl;
system("pause");
}
- 1 回答
- 0 关注
- 800 浏览
添加回答
举报