写一个能够输入人员名单,能够随机分成若干个小组。
时间: 2024-05-09 09:19:38 浏览: 7
以下是Python代码实现:
```
import random
# 输入人员名单
names = input("请输入人员名单,用逗号隔开:").split(",")
# 输入小组数量
group_num = int(input("请输入小组数量:"))
# 随机分组
random.shuffle(names)
groups = []
for i in range(group_num):
groups.append([])
for i, name in enumerate(names):
group_index = i % group_num
groups[group_index].append(name)
# 输出分组结果
for i, group in enumerate(groups):
print(f"第{i+1}组:{', '.join(group)}")
```
运行结果示例:
```
请输入人员名单,用逗号隔开:张三,李四,王五,赵六,钱七,孙八,周九,吴十
请输入小组数量:3
第1组:钱七, 周九
第2组:赵六, 吴十
第3组:张三, 李四, 王五, 孙八
```
相关问题
用c写一个能够输入人员名单,能够随机分成若干个小组
以下是一个示例代码,可以实现输入人员名单和随机分组功能:
```
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#define MAX_NAME_LEN 20 // 最大姓名长度
#define MAX_GROUP_NUM 10 // 最大小组数
#define MAX_GROUP_SIZE 10 // 每个小组的最大人数
// 定义一个结构体,表示一个人员的信息
typedef struct {
char name[MAX_NAME_LEN]; // 姓名
} Person;
// 随机分组函数,参数为人员数组和人数
void random_group(Person *p, int n) {
int group_size[MAX_GROUP_NUM]; // 每个小组的人数
int group_num; // 小组数
// 获取小组数和每个小组的人数
do {
printf("请输入小组数(最多%d个):", MAX_GROUP_NUM);
scanf("%d", &group_num);
} while (group_num <= 0 || group_num > MAX_GROUP_NUM);
printf("请输入每个小组的人数(最多%d人):", MAX_GROUP_SIZE);
scanf("%d", &group_size[0]);
for (int i = 1; i < group_num; i++) {
do {
printf("请输入第%d个小组的人数(最多%d人):", i + 1, MAX_GROUP_SIZE);
scanf("%d", &group_size[i]);
} while (group_size[i] <= 0 || group_size[i] > MAX_GROUP_SIZE);
}
// 将每个小组的人数随机分配
int total_size = 0;
for (int i = 0; i < group_num; i++) {
total_size += group_size[i];
}
srand((unsigned)time(NULL)); // 初始化随机数种子
int remaining = n;
int group_index = 0;
while (remaining > 0) {
int size = group_size[group_index] < remaining ? group_size[group_index] : remaining;
printf("第%d组:", group_index + 1);
for (int i = 0; i < size; i++) {
int j = rand() % remaining; // 随机选择一个人员
printf("%s ", p[j].name);
p[j] = p[remaining - 1]; // 将已选的人员从数组中删除
remaining--;
}
printf("\n");
group_index++;
}
}
int main() {
Person people[MAX_GROUP_NUM * MAX_GROUP_SIZE];
int n;
// 输入人员名单
printf("请输入人数(最多%d人):", MAX_GROUP_NUM * MAX_GROUP_SIZE);
scanf("%d", &n);
if (n <= 0 || n > MAX_GROUP_NUM * MAX_GROUP_SIZE) {
printf("输入的人数无效!\n");
return 0;
}
for (int i = 0; i < n; i++) {
printf("请输入第%d个人的姓名:", i + 1);
scanf("%s", people[i].name);
}
// 随机分组
random_group(people, n);
return 0;
}
```
在这个程序中,我们首先定义了一个结构体 `Person`,表示一个人员的信息,其中只包含了姓名。然后,我们定义了一个 `random_group` 函数,用来实现随机分组功能。该函数接受两个参数,分别是人员数组 `p` 和人数 `n`。
在 `random_group` 函数中,我们首先通过 `scanf` 函数获取小组数和每个小组的人数。然后,我们利用随机数生成器 `rand` 和 `srand` 函数,将每个小组的人数随机分配。具体来说,我们通过一个循环,依次处理每个小组。在每个小组中,我们首先计算出本组的人数 `size`,然后依次随机选择 `size` 个人员,并将他们的姓名输出到屏幕上。为了避免重复选取同一个人员,我们在每次选取完一个人员之后,将已选的人员从数组中删除。
最后,在 `main` 函数中,我们先通过 `scanf` 函数获取人数 `n`,然后依次输入每个人员的姓名。最后,我们调用 `random_group` 函数,将人员数组和人数作为参数传递给它,实现随机分组功能。
用Python写一个程序,能够生成随机的五位数
你好,我是 C 知道。以下是回答:
import random
print(random.randint(10000, 99999))
这是一个简单的 Python 程序,可以生成一个随机的五位数。