1
0
mirror of https://github.com/renbaoshuo/202401-programming-assignments.git synced 2024-12-16 15:44:39 +00:00
202401-programming-assignments/【实践课外】15.结构体1/7-5 一帮一.c

45 lines
1.1 KiB
C

#include <stdio.h>
#define FEMALE (0)
#define MALE (1)
struct student {
int gender; // 0 is female, 1 is male
char name[10]; // the problem promises that the name will not exceed 8 characters
int has_group;
};
int n, pos[2];
struct student students[55]; // the problem promises that the number of students will not exceed 50
int main() {
scanf("%d", &n);
pos[FEMALE] = pos[MALE] = n;
for (int i = 0; i < n; i++) {
scanf("%d %s", &students[i].gender, students[i].name);
}
for (int i = 0; i < n; i++) {
if (students[i].has_group) continue;
int current_gender = students[i].gender,
target_gender = current_gender ^ 1;
for (pos[target_gender]--; pos[target_gender] >= 0; pos[target_gender]--) {
if (students[pos[target_gender]].gender == target_gender
&& !students[pos[target_gender]].has_group) {
students[pos[target_gender]].has_group = 1;
students[i].has_group = 1;
printf("%s %s\n", students[i].name, students[pos[target_gender]].name);
break;
}
}
}
return 0;
}