#include <stdio.h>
#include<stdlib.h>
int main()
{
int n, i, k, m;
int array[50], *p;
printf("n = \n");
scanf("%d", &n);
p = array;
for (i = 0; i < n; i++)
*(p+i) = i+1;
i = 0; // i 为每次循环计数变量
k = 0; // k 为按1,2,3报数时的计数变量
m = 0; // m为退出人数计数变量
while(m < n-1) //当退出人数比n-1少时执行循环体
{
if( *(p+i) != 0 )
k++;
if(k == 3) // 对退出的人编号置为0
{
*(p+i) = 0;
k = 0;
m++;
}
i++;
if(i == n)
i = 0;
}
while(*p == 0)
p++;
printf("No. %d\n", *p);
return 0;
}
时间: 2024-10-13 11:48:41