c++函数与引用

要求:趣味取球。已知袋中有若干黑球和白球(具体个数,键盘输入),每次从中取出两个球。如果取出的两个球为同色,则放入袋中一个白球;如取出的两个球异色,则放入袋中一个黑球。通过取出球的颜色调用两种处理函数。

int x;

srand((unsigned)time(NULL)); //参数srandrand()的种子,用来初始化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);
    }
   }
 }

}

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值