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