众所周知,每一次参加讲座,为了确认具体的到场名单,工作人员都会要求到场的人签下
自己的名字,在讲座结束后,工作人员就会根据名单来记录并加上综测成绩,现在为了帮
助工作人员可以更好的进行统计工作,希望你能按名字字典序升序来排列这些签到人的姓
名。
★数据输入
第一行N(2<=N<=100000),代表签到人数。
接下来N行每行一串由小写字符组成的字符串。 (字符串长度<=20)代表每个签到人的名
字。
★数据输出
输出N行,表示按字典序升序排序后的名字。
输入示例 输出示例
2
jack jack
rose rose
x x
xxl xl
xl xxl
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
#include<malloc.h>
struct Name{char str[21];};
int method(const void *a, const void *b);
int main(void)
{
Name *name;
int n;
while (scanf("%d", &n)!=EOF)
{
getchar();
name=(Name *)malloc(n*sizeof(Name));
for (int i = 0; i < n; i++)
{
gets(name[i].str);
}
qsort(name, n, sizeof(Name), method);
for (i = 0; i < n; i++)
{
puts(name[i].str);
}
free(name);
}
}
int method(const void *a, const void *b){
return strcmp((*(Name*)a).str, (*(Name*)b).str);
}