本次学到知识点:qsort
pta例题
7-5 资料整理
题解
#include<stdio.h>
#include<stdlib.h>
typedef struct{
int id;
int cla;
char name[16];
}Stu;
int cmp2(const void *pa,const void *pb){
Stu *a = (Stu *)pa;
Stu *b = (Stu *)pb;
return a->id-b->id;
}
int main(){
int n;
Stu a[1000];
scanf("%d",&n);
for(int i=0;i<n;i++){
scanf("%d",&a[i].id);
scanf("%d",&a[i].cla);
scanf("%s",&a[i].name);
}
Stu temp;
qsort(a,n,sizeof(Stu),cmp2);
for(int i=0;i<n-1;i++){
for(int j=0;j<n-i-1;j++){
if(a[j].cla>a[j+1].cla){
temp = a[j];
a[j] = a[j+1];
a[j+1] = temp;
}
}
}
for(int i=0;i<n;i++){
printf("%s\n",a[i].name);
}
return 0;
}
qsort用法
qsort(数组头,数组长度,sizeof(数据类型),cmp(自行编写))
ex:int cmp(const void *pa,const void *pb){
return *(int *)pa-*(int *)pb;
}