#include <stdio.h>
#include <stdlib.h>
int main () {
int m = 7; //定义循环T出得数字
int a[17], b[17];
int i, del = -1, sum; //del为后面要备用的下标,因为下表从0开始后面牵扯从1开始计算所以定义为-1
for (i = 0; i <= 16; i++) {
a[i] = i + 1; //数组a记录编号
b[i] = 1; //数组b标记是否出局,B组最后生下最后一个为1那么对应i坐标的a组最后一个就是了
}
printf("Pass:");
for (sum = 17; sum > 1; sum--) { //总人数递减,直到只剩一人
for (i = 1; i <= m;) { //在未出局的人中以7为轮次循环
del = (del + 1) % 17; //后移下标,并控制在0~17之间
if (b[del] == 1)
i++;
}
printf(" %d", a[del]);
b[del] = 0;
}
for (i = 0; b[i] == 0; i++); //找出未出局的编号
printf("\nThe winner is: %d\n\n", a[i]);
return 0;
}
我从网上找的,备注的已经一清二楚了。。。你们开心不。 |
|