签到问题

实验任务
众所周知,每一次参加讲座,为了确认具体的到场名单,工作人员都会要求到场的人签下
自己的名字,在讲座结束后,工作人员就会根据名单来记录并加上综测成绩,现在为了帮
助工作人员可以更好的进行统计工作,希望你能按名字字典序升序来排列这些签到人的姓
名。
数据输入
第一行N(2<=N<=100000),代表签到人数。
接下来N行每行一串由小写字符组成的字符串。 (字符串长度<=20)代表每个签到人的名
字。
数据输出
输出N行,表示按字典序升序排序后的名字。
输入示例 输出示例
2
jack      jack

rose      rose



3
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);
}   
       





评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值