#include<iostream>
#include<iomanip>
#include<cstdio>
using namespace std;
int compare(const void* x,const void* y)//按照第三列排序,二维数组,按照哪一列排序,就把【2】改为【n-1】
{
if(((double*)y)[2] > ((double*)x)[2] ) return +1;
if(((double*)y)[2] < ((double*)x)[2] ) return -1;
else return 0;
}
int main()
{
int m;
cin>>m;
double a[25][3];
for(int i=0;i<m;i++)
{
cin>>a[i][0]>>a[i][1]>>a[i][2];
}
qsort(a,m,sizeof(a[0]),&compare);//按照第三列排序
for(int i=0;i<m;i++)
cout<<a[i][0]<<' '<<a[i][1]<<' '<<a[i][2]<<endl;
return 0;
}
或者 对整型二维数组第三列排序
#include<iostream>
#include<iomanip>
#include<cstdio>
using namespace std;
int compare(const void *x,const void *y)//按照第三列升序排序,二维数组,按照哪一列排序,就把【2】改为【n-1】
{
return ((int*)x)[2] - ((int*)y)[2];
}
int main()
{
int m;
cin>>m;
int a[25][3];
for(int i=0;i<m;i++)
{
cin>>a[i][0]>>a[i][1]>>a[i][2];
}
qsort(a,m,sizeof(int)*3,compare);//按照第三列排序,一共n列,就sizeof(int)*n;
for(int i=0;i<m;i++)
cout<<a[i][0]<<' '<<a[i][1]<<' '<<a[i][2]<<endl;
return 0;
}
或者对一维数组排序
#include<iostream>
#include<iomanip>
#include<cstdio>
using namespace std;
int compare(const void *x,const void *y)//一维数组排序 升序
{
return *(int*)x - *(int*)y;
}
int main()
{
int m;
cin>>m;
int a[25];
for(int i=0;i<m;i++)
{
cin>>a[i];
}
qsort(a,m,sizeof(int),compare);
for(int i=0;i<m;i++)
cout<<a[i]<<' '<<endl;
return 0;
}
参考网址:http://blog.csdn.net/eastmount/article/details/49039741
网友评论