您的位置:首页 > 其它

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

2015-09-22 20:49 274 查看
/*
这是一个测试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;

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息