我會為妳郵寄它
# include & ltstdio.h & gt
void main()
{
int i,k,m,n,num[50],* p;
printf("輸入人數:n = ");
scanf("%d ",& ampn);
p = num
for(I = 0;我& ltn;i++)
*(p+I)= I+1;
I = 0;
k = 0;
m = 0;
while(m & lt;N-1)//m是局裏的人數。因為有n個人,只剩下壹個人,所以最多(n-1)個人出局,構成壹個循環。
{
if(*(p+i)!=0)//判斷這個號碼(原序列號)是否出。
k++;//如果這個數不出,就報數,計數器加1。
If(k==3)//報3出來。
{
*(p+I)= 0;//標出出局的人。
k = 0;//將計數器設置為零,以便後面的人可以報數。
m++;//超出數量的計數器加上1
}
i++;//將指針向後移動。雖然I不是指針,但是p+i是指針,所以我為指針服務。
If(i==n)//如果指針移動到尾部,則返回頭部。
I = 0;
}
//以上循環為主,後面是找最後壹個人,很好理解。
While(*p==0)//用這個只能判斷妳要找的數(包括妳要找的數)前面的數,不能判斷後面的數。
p++;
printf("最後壹個是N0。%d\n ",* p);
}
如果妳什麽都不明白,妳可以問我。