#include"cpp3.h"
//重载求解出圈的函数joseph()
void Joseph(SeqList c[],int length)
{ int m;
cout<<"请输入初始报数值 m(m<=20)";
cin>>m;//初始报数值
while(m>20)
{cout<<"数据太大,请重新输入数据 m(m<=20):\n";
cin>>m;}
cout<<"请输入参加游戏的人的姓名:"<<endl;
getchar();
//输入参加游戏人的名字
char s[10];
for(int i=0;i<length;i++)
{cout<<"第"<<i+1<<"个人的名字:";
gets(s);
c[i].SetName(s);}
i=-1;
int j,k;
for(k=1;k<=length;k++)
{
j=0;
while(j<m)
{i++;
if(i==length)//返回到第一个位置
i=0;
if(c[i].GetNum()!=0) j++;//若该人员在圈中,则记数有效
}
if (k==length) break;
cout<<"第"<<k<<"个出圈人的信息:编号";
c[i].DispNum();
cout<<" 姓名";
c[i].DispName();//输出出圈人的信息
cout<<endl;
c[i].SetNum(0);//标示该人员已出圈
}
//break语句跳转至此
cout<<"最后出圈人的信息: 编号";
c[i].DispNum();
cout<<" 姓名";
c[i].DispName();
cout<<endl;//输出最后出列的编号
}
//游戏一的准备函数
void game1()
{
const int n=30;
int length=0;
cout<<"请输入参加游戏人的个数:";
cin>>length;
SeqList c[n];
for(int i=0;i<length;i++)
{c[i].SetNum(i+1);
c[i].SetName(" ");
}
Joseph(c,length);
}