问题:有n个人围成一圈,顺序排号。从第一个人开始报数(从1到3报数),凡报到3的人退出圈子,问最后留下的是原来第几号的那位。
为什么我这个代码运行不出结果呀?
#include<iostream>
using namespace std;
int main()
{
int n;//最开始的总人数
int i;//控制变量
cout<<"请输入有多少人参加游戏"<<'\n';
cin>>n;
int s[100];//定义一个数组
int j=0;//总共退圈人数
int y;// 每轮退圈人的号码
int cout=0;//每轮报号累加数
for(i=0;i<n;i++)
{
s[i]=1;//1在圈内,0在圈外,所有人都在圈外时停止循环
}
while(j<n)
{
for(i=0;i<n;i++)
{
if(s[i]==1)
{
cout++;
if(cout%3==0)
{
s[i]=0;
j++;
y=i+1;
}
}
}
}
cout<<y<<'\n';
return 0;
}