要求:趣味取球。已知袋中有若干黑球和白球(具体个数,键盘输入),每次从中取出两个球。如果取出的两个球为同色,则放入袋中一个白球;如取出的两个球异色,则放入袋中一个黑球。通过取出球的颜色调用两种处理函数。
int x;
srand((unsigned)time(NULL)); //参数srand是rand()的种子,用来初始化rand的初始值。以当前时间为参数。
x=rand ( )%9; //产生0~8之间的随机数
#include<iostream>
#include<time.h>
#include<string>
#define N 100
using namespace std;
int m=5;
class qiu
{
int color;
public:
set_c(int c)
{
color=c;
}
int print()
{
// cout<<"1为白色,0为黑色"<<endl;
cout<<"取出球的颜色为:"<<print_c(color)<<endl;
return color;
}
string print_c(int m)
{
if(m==1)
return "白色";
if(m==0)
return "黑色";
}
};
void put_b(qiu *p)
{
p[m-1].set_c(0);
cout<<"已放入一个黑球"<<endl;
}
void put_w(qiu *p)
{
p[m-1].set_c(1);
cout<<"已放入一个白球"<<endl;
}
void main()
{
int b,w,x,y,i,j,a,h;
cout<<"请输入黑球的个数:";
cin>>b;
cout<<endl;
cout<<"请输入白球的个数:";
cin>>w;
cout<<endl;
m=b+w;
qiu *p=new qiu[N];
for(i=0;i<b;i++)
{
p[i].set_c(0);
}
for(j=b;j<m;j++)
{
p[j].set_c(1);
}
if(b+w<2)
cout<<"袋内球个数少于2"<<endl;
while(b+w>=2)
{
if(b==0)
{
cout<<"取出球的颜色为: 白色"<<endl;
cout<<"取出球的颜色为: 白色"<<endl;
cout<<"已放入一个白球";
cout<<endl;
w=w-2;
w++;
}
else
if(w==0)
{
cout<<"取出球的颜色为: 黑色"<<endl;
cout<<"取出球的颜色为: 黑色"<<endl;
cout<<"已放入一个白球";
cout<<endl;
b=b-2;
w++;
}
else{
srand((unsigned)time(NULL));
x=rand ( )%m;
y=rand ( )%m;
a=p[x].print();
if(a==1)
w--;
else
b--;
h=p[y].print();
if(h==1)
w--;
else
b--;
if(a==h)
{
m=m+1;
w++;
put_w(p);
}
else
{
m=m+1;
b++;
put_b(p);
}
}
}
}