A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© iphone 中级黑马   /  2015-8-23 13:20  /  955 人查看  /  0 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

#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;
}

我从网上找的,备注的已经一清二楚了。。。你们开心不。

0 个回复

您需要登录后才可以回帖 登录 | 加入黑马