面向对象程序设计(一)---qsort

本次学到知识点: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;
    }
posted @ 2021-03-25 20:40  Xuuxxi  阅读(46)  评论(0)    收藏  举报