面向对象思想写猴子选大王,c++编程
2个回答
展开全部
#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();
}
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();
}
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
详细点儿
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询