题解
2025-07-03 09:29:47
发布于:浙江
3阅读
0回复
0点赞
#include <stdio.h>
#include <string.h>
#define MAX_LEN 15
#define MAX_N 1005
typedef struct {
char id[MAX_LEN];
char name[MAX_LEN];
int seat;
} Student;
int main() {
int n, k;
scanf("%d %d", &n, &k);
Student students[MAX_N];
int idToIndex[MAX_N];
for (int i = 0; i < n; i++) {
scanf("%s %s %d", students[i].id, students[i].name, &students[i].seat);
for (int j = 0; j <= i; j++) {
if (strcmp(students[j].id, students[i].id) == 0) {
idToIndex[j] = i;
break;
}
}
}
for (int i = 0; i < k; i++) {
char id1[MAX_LEN], id2[MAX_LEN];
scanf("%s %s", id1, id2);
int idx1 = -1, idx2 = -1;
for (int j = 0; j < n; j++) {
if (strcmp(students[j].id, id1) == 0) {
idx1 = j;
}
if (strcmp(students[j].id, id2) == 0) {
idx2 = j;
}
if (idx1 != -1 && idx2 != -1) break;
}
if (idx1 != -1 && idx2 != -1) {
int temp = students[idx1].seat;
students[idx1].seat = students[idx2].seat;
students[idx2].seat = temp;
}
}
for (int i = 0; i < n; i++) {
for (int j = 0; j < n; j++) {
if (students[j].seat == i) {
printf("%s %s %d\n", students[j].id, students[j].name, students[j].seat);
break;
}
}
}
return 0;
}
这里空空如也
有帮助,赞一个