二维数组如何主次要排序

我有个二维数组,对应一张数据表格,我该如何进行主次列要排序?

针对其中一列排序我可以做得到,但同时对两列排序不知从何下手,比如以第2列为主要排序,第1列为次要排序。

int a[50][2]; // 对应一张50行2列的表格
// 第2列为主要排序,第1列为次要排序。

N改为50,数据替换{{3,1},{1, 2},{1,1}}即可。敲代码不容易求采纳!

#include <stdio.h>
#define N 3
int sortd(int a[][2],int len, int len1)
{int i=0;
int j;
int t;
for(i=0;i<len-1;i++) 
{
for(j=0;j<len-i-1;j++)
{
if(a[j][1]>a[j+1][1]||((a[j][1]==a[j+1][1])&&(a[j][0]>a[j+1][0])))
{
t=a[j][0];
a[j][0]=a[j+1][0];
a[j+1][0]=t;
t=a[j][1];
a[j][1]=a[j+1][1];
a[j+1][1]=t;
}
}
}
}
int main(int argc, char *argv[])
{
int a[N][2]={{3,1},{1, 2},{1,1}};
int i,j;
sortd(a,N,2);
for(j=0;j<N;j++){
    for(i=0;i<2;i++)
        printf("%d ",a[j][i]);
    printf("\n");            
}
return 0;
}

按主次要排序,就是说同一行的2个数据是一组,要交换就一起交换,不能把它们分开
判断条件就是先主要列比大小,如果相等就次要列比大小

不知道你这个问题是否已经解决, 如果还没有解决的话:

如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^