1. 程式人生 > 其它 >C語言sort排序

C語言sort排序

技術標籤:c語言c語言

sort排序結構體及sort降序排序

<寫給自己看的>

#include<bits/stdc++.h>
using namespace std;

struct object{
	int a;
	int b;
	int c;
}sth[5];

int x[5];

int cmp1(object x,object y){
	if(x.a==y.a){
		if(x.b==y.b){
			return x.c>y.c;
		}
		else return x.b>y.b;
	}
	else return x.a>y.a;
}//優先按a從大到小排,其次按b從大到小排,最次按c從大到小排 int cmp2(int a,int b){ return a>b; }//從大到小排 int main(){ sth[0].a=1,sth[0].b=3,sth[0].c=3; sth[1].a=5,sth[1].b=1,sth[1].c=4; sth[2].a=1,sth[2].b=6,sth[2].c=5; sth[3].a=4,sth[3].b=3,sth[3].c=7; sth[4].a=1,sth[4].b=3,sth[4].c=1; for(int i=0;i<5;i++) {
printf("%d %d %d\n",sth[i].a,sth[i].b,sth[i].c); }//輸出原始 printf("\n"); sort(sth,sth+5,cmp1); for(int i=0;i<5;i++) { printf("%d %d %d\n",sth[i].a,sth[i].b,sth[i].c); }//排序後 printf("\n"); x[0]=5,x[1]=3,x[2]=4,x[3]=1,x[4]
=2; for(int i=0;i<5;i++) { printf("%d ",x[i]); } printf("\n");//輸出原始 sort(x,x+5); for(int i=0;i<5;i++) { printf("%d ",x[i]); } printf("\n"); sort(x,x+5,cmp2); for(int i=0;i<5;i++) { printf("%d ",x[i]); }//排序後 return 0; }

執行圖
配上執行圖