题目比较简单:主要是用链表做出来的,想保留一下自己的思路,继续努力
#include<stdio.h>
#include<string.h>
#define N 13
struct team//1,,8,13
{
int number;//第几个出来的
int flag;//是否已报数3
};
int judge(const struct team *a)
{
for(int i=0;i<N;i++)
{
if(a[i].flag==1)
return 1;
}
return 0;
}
main()
{
struct team person[N];
int k=0;
for(int i=0;i<N;i++)
{
person[i].number=1;
person[i].flag=1;
}
while(judge(person))
{
//遍历到最后
for(int i=0;i<N;i++)
{
if(person[i].flag!=0)
{
k++;
if(k%3==0)
{
person[i].flag=0;
person[i].number=k/3;
}
}
}
}
printf("\n出圈成员及顺序:");
for(int i=1;i<N;i++)
{
for(int j=0;j<N;j++)
{
if(person[j].number==i)
printf("%3d",j+1);
}
}
printf("\n最后的成员是:");
for(int j=0;j<N;j++)
{
if(person[j].number==N)
printf("%3d",j+1);
}
}