在C语言中,可以使用`rand()`函数和`srand()`函数来生成随机数,并通过一些算法来实现随机分组。以下是一个简单的示例,展示如何将一组名字随机分成若干组:
包含必要的头文件
```c
include include include ``` ```c srand(time(NULL)); // 使用当前时间作为种子,确保每次运行程序生成的随机数序列不同 ``` ```c const char *names[] = { "许新华", "王玉恒", "陶小康", "王娇娇", "盛开", "郑丹", "陈芳", "张龙", "陈梦玉", "祝秋培", "吴赟鹏", "胡光兴", "曾从威", "边金鹏", "陈逸伦", "王琦", "刘加封", "徐煜清", "陈喆", "盛开", "方文倩", "边金鹏", "陈振宇", "陶小康", "孙凌霄", "王玉恒", "王娇娇", "许新华", "胡光兴", "周波", "王鹏", "李鸿飞", "陈程", "徐小蕤", "李峰", "王琦", "陈梦玉", "陈志辉", "李森", "陈芳" }; ``` ```c const int group_count = 4; ``` ```c void random_group(const char names, int name_count, int group_count) { if (name_count < group_count) { printf("名字数量少于分组数量,无法分组。\n"); return; } for (int i = 0; i < group_count; i++) { int start = rand() % (name_count - i); // 随机选择一个起始位置 for (int j = start; j < name_count - i - 1; j++) { int temp = names[j]; names[j] = names[j + 1]; names[j + 1] = temp; } printf("%d组: ", i + 1); for (int j = 0; j < i + 1; j++) { printf("%s ", names[j]); } printf("\n"); } } ``` ```c int main() { int name_count = sizeof(names) / sizeof(names); random_group(names, name_count, group_count); return 0; } ``` 这个程序首先设置随机数种子,然后定义一个名字数组和分组数量。`random_group`函数通过随机选择起始位置并交换元素来实现随机分组。最后,主函数调用`random_group`函数并输出结果。 运行这个程序,你会看到名字被随机分成若干组,每组4个人。每次运行程序,分组结果都会不同。设置随机数种子
定义名字数组
定义分组数量
随机分组算法
主函数