1 回答

TA貢獻1842條經(jīng)驗 獲得超21個贊
給,已經(jīng)編譯運行確認:
#include <iostream>
#include <time.h>
using namespace std;
enum Ball
{
white,
black
};
int main(int argc, char *argv[])
{
//定義袋中黑白球的數(shù)目
int BlackNum;
int WhiteNum;
//由用戶指定袋中的黑白球數(shù)目
cout << "請輸入袋中白球的數(shù)目" << endl;
cin >> WhiteNum;
cout << "請輸入袋中黑球的數(shù)目" << endl;
cin >> BlackNum;
//初始化隨機數(shù)種子
srand((unsigned)time(NULL));
int times = 0; //取球的次數(shù)
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;
}
}
//根據(jù)取出的兩個球的顏色是否相等來覺得是放黑球進去還是白球進去
if (FirstBall == SecondBall)
{
++WhiteNum;
}
else
{
++BlackNum;
}
}
if (WhiteNum == 1)
{
cout << "最后一個球為白球" << endl;
}
else
cout << "最后一個球為黑球" << endl;
system("pause");
}
- 1 回答
- 0 關注
- 832 瀏覽
添加回答
舉報