**本题是利用count++的形式解决了第一个人接着最后一个人报数的问题 **
/*
时间:2020/08/04
目的:n人围成一圈从第1个人开始按1~3报数,报3的人退出圈子,问最后留下的是第几号
功能:经典题目实践
*/
#include<stdio.h>
int main()
{
int i,count=0,n,t;
printf("输入游戏人数:");
scanf("%d",&n);
t=n;
int a[n];
for(i=0;i<n;i++)
a[i]=i+1;//对游戏人员进行编号
i=0;
while(t>1)//筛选到只剩最后一人
{
if(a[i]!=0)
count++;
if(count==3)
{
a[i]=0;//a[i]=0表示被淘汰
count=0;//重新开始从一报数
t--;//游戏人数减少一个
}
i++;
if(i==n)//遍历完整个数组后还会i++,此时i就会等于n
//所以将i==n作为遍历结束的标志
i=0;//进行再一轮的遍历
}
for(i=0;i<n;i++)
{
if(a[i]!=0)
printf("\n最后留下的人是%d号",a[i]);
}
return 0;
}