AcWing 3604. 最小年龄的3个职工
原题链接
简单
作者:
王小强
,
2022-03-29 16:02:14
,
所有人可见
,
阅读 184
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <math.h>
#define MAX_N 50
typedef struct Employee E;
struct Employee {
int no;
char name[15];
int age;
} es[50];
int cmp(const void* e1, const void* e2) {
E *a = (E*) e1, *b = (E*) e2;
if (a->age != b->age)
return a->age - b->age;
if (a->no != b->no)
return a->no - b->no;
return strcmp(a->name, b->name);
}
int main(int argc, char const *argv[]) {
int n;
scanf("%d", &n);
for (int i = 0; i < n; ++i)
scanf("%d%s%d", &es[i].no, es[i].name, &es[i].age);
qsort(es, n, sizeof(E), cmp);
for (int i = 0; i < fmin(n, 3); ++i)
printf("%d %s %d\n", es[i].no, es[i].name, es[i].age);
return 0;
}