欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

用C/C++进行随机分组的实现教程

程序员文章站 2022-06-17 19:06:04
用c/c++进行随机分组的实现教程 /************************ 要求将下列名单随机分组:分组要求,随机选择4个人组成一组 输出结果:4个人一行进行输出,每行代表一个组...

用c/c++进行随机分组的实现教程

/************************
要求将下列名单随机分组:分组要求,随机选择4个人组成一组
输出结果:4个人一行进行输出,每行代表一个组
例如:
许新华  王玉恒  陶小康  王娇娇
盛  开  郑  丹  陈  芳  张  龙
陈梦玉  祝秋培  吴赟鹏  胡光兴
曾从威  边金鹏  陈逸伦  王  琦
刘加封  徐煜清  姚  笛  孔海宇
孙凌霄  王  鹏  王  虎  李  峰
周  波  蒋恺均  徐小蕤  缪  峰
刘江涛  陈  喆  方文倩  崔雅倩
陈  程  陈振宇  李  森  陈志辉
李鸿飞

人名:
曾从威
蒋恺均
刘江涛
崔雅倩
祝秋培
吴赟鹏
李鸿飞
王  虎
缪  峰
张  龙
刘加封
姚  笛
郑  丹
孔海宇
陈逸伦
徐煜清
陈  喆
盛  开
方文倩
边金鹏
陈振宇
陶小康
孙凌霄
王玉恒
王娇娇
许新华
胡光兴
周  波
王  鹏
李鸿飞
陈  程
徐小蕤
李  峰
王  琦
陈梦玉
陈志辉
李  森
陈  芳
**************************/
#include <stdio.h>
#include <stdlib.h>
#include <time.h>

int main()
{
    const char *name[] =
    {
        "曾从威" ,
        "蒋恺均" ,
        "刘江涛" ,
        "崔雅倩" ,
        "祝秋培" ,
        "吴赟鹏" ,
        "李鸿飞" ,
        "王  虎" ,
        "缪  峰" ,
        "张  龙" ,
        "刘加封" ,
        "姚  笛" ,
        "郑  丹" ,
        "孔海宇" ,
        "陈逸伦" ,
        "徐煜清" ,
        "陈  喆" ,
        "盛  开" ,
        "方文倩" ,
        "边金鹏" ,
        "陈振宇" ,
        "陶小康" ,
        "孙凌霄" ,
        "王玉恒" ,
        "王娇娇" ,
        "许新华" ,
        "胡光兴" ,
        "周  波" ,
        "王  鹏" ,
        "李鸿飞" ,
        "陈  程" ,
        "徐小蕤" ,
        "李  峰" ,
        "王  琦" ,
        "陈梦玉" ,
        "陈志辉" ,
        "李  森" ,
        "陈  芳" ,
    };
    int len = sizeof(name)/sizeof(name[0]);
    printf("len: %d\n",len);
    
    //乱序种子
    srand((unsigned)time(null));
    
    int last = len-1; // 最后一个元素的下标
    int i;
    for(i =0;i < len; i++)
    {
        int index = rand() % len; // 产生一个随机数作为数组下标
        const char *tmp = name[index];
        name[index] = name[last];
        name[last] = tmp;
        last--;
    }
    
    for(i = 0;i< len; i++)
    {
        if(i % 4 == 0)
            printf("\n");
        printf("%12s",name[i]);
    }
    
    printf("\n");
    return 0;
}