问题:
由n个人围成一圈,顺序排号。从第一个人开始报数(从1到3报数),凡是到3的人退出圈子,问最后留下的原来第几号的那位。
代码
#includeint main() { int num[50],n,*p,j,loop,i,m,k; printf("请输入这一圈人的数量:"); scanf("%d",&n); p = num; for(j = 0 ; j < n ; j++){ *(p+j) = j+1; } i = 0; m = 0; k = 0; while(m if(*(p+i)!=0){ k++; } if(k==3){ k = 0; *(p+i)=0; m++; } i++; if(i==n){ i = 0; } } printf("现在剩下的人是:"); for(loop=0;loop if(num[loop]!=0){ printf("%2d号n",num[loop]); } } return 0; }



