#include <stdio.h>
#define SIZE 100 //代表人数 可以 改变
#define OUT 3 //代表要数到几出局的人
int main() {
int arr[SIZE] = { 0 }; //数据元素不等与0 的出局
int flage = 1; //m 被杀掉 标志位报数
int i = SIZE; //出局的人
int k = 0; //下标
int end; //最后的一个人
while ( i != 0 ) //出局的人 要出局够100个 得到最后一个
{
if (arr[k] == 0) { //求每个下标是否是0 如果不是0 就寻找下一个人(22行 k++)
if (flage == OUT) { //标志位到3 的 k 出局
arr[k] = 1; //将出局的人变成1
i--; //出局一个
flage = 0 ; //出局一个将标志位变0
end = k + 1 ; //最后的一个人 数组下标是从0开始的所以 + 1 ;
printf("%d\t", k +1);
}
flage++; //如果等于0(没出局的人) ,报数不是3 将 报数 + 1 ;
}
k++; //找下一个没出局的人
if (k >= SIZE) { // 如果k找到了最后一个 ,将K=0
k = 0; //从头开始寻找
}
}
printf("\n");
printf("最后剩下的一个人是=====%d\n", end);
return 0;
}
数组实现,基础还是太差,写了一个小时!!!!!!欢迎大佬批评
😁