N个人报数,遇3则退。最后剩下的人为原第几个(找错误)
#include<stdio.h>int main()
{
int *p;
int n,k,i,j;
int a[100];
printf("输入班级总人数:");
scanf("%d",&n);
for(i=0;i<n;i++)
{
a[i]=i+1;
}
k=1; i=0; p=a; j=1;
for(;;i++,k++,p++)
{
if(k==3)
{
*p=0;
k=1;
j++;
continue;
}
if(*p==0)
{
k=k-1;
continue;
}
if(i==n)
{
i=-1;
p=a;
p--;
continue;
}
if(j==n-1) break;
}
p=a;
while(*p==0)
{
p++;
}
printf("这个同学的编号是:%d",*p);
scanf("\n");
}
我看了N多遍了,实在找不出来,望各位帮帮忙