面向对象思想写猴子选大王,c++编程

 我来答
ge2008ge12
推荐于2016-12-01 · TA获得超过1110个赞
知道小有建树答主
回答量:683
采纳率:100%
帮助的人:347万
展开全部
#include<iostream>
using namespace std;
class mon
{
private:
int *monkey;
int M;
int N;
public:
mon(int x,int y):M(x),N(y)

{
monkey=new int [x];

}

void bianhao()
{ for(int i=0; i<M; i++)
{

monkey[i]=i; //给猴子编号
}
}
void showall()
{for(int i=0; i<M; i++)
{
cout<<monkey[i]<<"\t";
}
}
void show()
{ int k = 1;
cout<<"After "<<k<<" times elimination, the monkeys left are:"<<endl;
for(int i=0; i<M; i++)
{
if(monkey[i]!=0)
{
cout<<monkey[i]<<"\t";
}
}
}
void tichu()
{
int k=1; //第k个离开的猴子
int n=-1; //数组下标,下一个为0表示从第一个猴子开始数数
while(true)
{
//在圈中开始剔除
for(int j=0; j<N;)
{
n=(n+1)%M;
if(monkey[n]!=0) //如果该猴子还在圈中,则参加计数
{
j++;
}
}
if(k==M) //如果已经全部剔除完成,则跳出循环
{
break;
}
monkey[n]=0;
show();
cout<<endl;
k++;
}
// break语句跳转至此,输出胜利者编号
cout<<"The No."<<monkey[n]<<" monkey is the winner."<<endl;
}
~mon(){delete[]monkey;}

};

void main()
{ int x;int y;
cout<< "输入猴子总数 随机选取的数"<<endl;
cin>>x;
cin>>y;
mon a(x,y);
cout<<" Before eliminating, the monkeys are:"<<endl;
a.bianhao();
a.showall();
a.tichu();
}
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
伍楼华
2011-11-02 · TA获得超过256个赞
知道答主
回答量:127
采纳率:0%
帮助的人:75.7万
展开全部
详细点儿
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式