使用qsort对二维数组李的某一列元素进行排序

/*
	这是一个测试qsort的函数,主要是针对一个二维数组,对其中的某一列进行
	排序,之后按照这一列的排序重排整个二维数组

 */


#include<stdio.h>
#include<stdlib.h>

/*
   comp 作为qsort的一个参数,其定义了一个数组按那个元素排序
 */
int comp(const void *a,const void *b)
{
	if(((double*)a)[1]<((double*)b)[1])
		return -1;
	else return 1;
}


int main()
{
	double a[4][2]={{1.31,8},{3.01,5},{2.2,6},{0.32,7}};
	int i,j;
	int m = 4;
	/*
	   a 是数组名称
	   m 是数组的大小
	   第三个参数是一维数组的大小
	   comp 是排序的原则
	 */
	qsort(a,m,sizeof(double)*2,comp);
	
	for(i=0;i<4;i++)
	{
		for(j=0;j<2;j++)
			printf("%8.2f",a[i][j]);
		printf("\n");
	}
	return 0;

}

你可能感兴趣的:(qsort,二维数组排序)