求助 帮看看程序 那错了
N个人组成一圈,顺序排号。从第1个人开始报数(从1到3报数),凡报到3的人退出圈子,问最后留下的是原来第几号的那位?那位打个看看我的程序那错了! 谢谢了
#include<stdio.h>
f(int *pt,int n)
{int m,i,t;
m=n%3;
while(n>=3)
{n=(n-n/3);
for(i=1;i<=n;i++)
{if(i=3) continue;
t=i/3;
*(pt+i-t-1)=*(pt+t);
}
for(i=n;i>=1;i++)
*(pt+i-1+m)=*(pt+i-1);
for(i=1;i<=m;i++)
*(pt+i-1)=*(pt+n-m+1);
}
for(i=0;i<n;i++)
printf("%d",*(pt+i));
}
#define N 5
void main()
{int a[N],*p,i;
p=a;
for(i=0;i<N;i++)
a[i]=i+1;
f(p,N);
}