数据结构课程设计舞伴问题
时间: 2024-06-14 07:04:16 浏览: 11
以下是一个简单的数据结构课程设计舞伴问题的示例程序:
```c
#include <stdio.h>
#include <string.h>
typedef struct {
char name[20];
char sex;
} Person;
Person dancer[20];
int main() {
int m, n;
printf("请输入女生人数:");
scanf("%d", &m);
printf("请输入男生人数:");
scanf("%d", &n);
// 输入参会人员信息
for (int i = 0; i < m; i++) {
printf("请输入第%d个女生的姓名:", i + 1);
scanf("%s", dancer[i].name);
dancer[i].sex = 'F';
}
for (int i = 0; i < n; i++) {
printf("请输入第%d个男生的姓名:", i + 1);
scanf("%s", dancer[m + i].name);
dancer[m + i].sex = 'M';
}
// 舞伴配对过程
int round = 1;
while (1) {
printf("第%d轮舞曲开始\n", round);
int paired = 0; // 已配对的人数
for (int i = 0; i < m + n; i++) {
if (dancer[i].sex == 'F') {
printf("%s女士,请选择一个男士跳舞:", dancer[i].name);
for (int j = 0; j < m + n; j++) {
if (dancer[j].sex == 'M') {
printf("%d.%s ", j + 1, dancer[j].name);
}
}
printf("\n");
int choice;
scanf("%d", &choice);
printf("%s女士和%s男士配对成功\n", dancer[i].name, dancer[choice - 1].name);
paired += 2;
}
}
if (paired == m + n) {
printf("所有人都已配对成功,舞伴配对过程结束\n");
break;
}
round++;
}
return 0;
}
```