#include<stdio.h>
#include<stdlib.h>
#include<string.h>
struct jilu
{
char zj[20];
char qd[10];
char qt[10];
}px[10000];
int cmp1( const void *a , const void *b )
{
return strcmp((*(jilu *)a).qd , (*(jilu *)b).qd );
}
//这个是对结构体中字符串进行排序的
int cmp2(const void *a,const void *b)
{
return strcmp((*(jilu *)b).qt,(*(jilu *)a).qt);
}
int main()
{
int n,m;
int i;
scanf("%d",&n);
while(n--)
{
scanf("%d",&m);
getchar();
for(i=0;i<m;i++)
scanf("%s %s %s",&px[i].zj,&px[i].qd,&px[i].qt);
qsort(px,m,sizeof(px[0]),cmp1);
printf("%s ",px[0].zj);
qsort(px,m,sizeof(px[0]),cmp2);
printf("%s\n",px[0].zj);
}
return 0;
}
#include<stdlib.h>
#include<string.h>
struct jilu
{
char zj[20];
char qd[10];
char qt[10];
}px[10000];
int cmp1( const void *a , const void *b )
{
return strcmp((*(jilu *)a).qd , (*(jilu *)b).qd );
}
//这个是对结构体中字符串进行排序的
int cmp2(const void *a,const void *b)
{
return strcmp((*(jilu *)b).qt,(*(jilu *)a).qt);
}
int main()
{
int n,m;
int i;
scanf("%d",&n);
while(n--)
{
scanf("%d",&m);
getchar();
for(i=0;i<m;i++)
scanf("%s %s %s",&px[i].zj,&px[i].qd,&px[i].qt);
qsort(px,m,sizeof(px[0]),cmp1);
printf("%s ",px[0].zj);
qsort(px,m,sizeof(px[0]),cmp2);
printf("%s\n",px[0].zj);
}
return 0;
}
本文介绍了一个使用C语言实现的结构体排序程序。该程序定义了一个包含三个字符串字段的结构体,并通过qsort函数实现了按两个不同字段进行排序的功能。首先按结构体中的一个字符串字段进行排序并输出第一个元素的第三个字段,然后按另一个字符串字段重新排序并再次输出第一个元素的第三个字段。

被折叠的 条评论
为什么被折叠?



