非
#include <iostream>
using namespace std;
int main()
{
int a[3][4]={{12,11, 45, 6},{10,3,4,0},{-3,1,36,7}};
int i,j,m,temp,tag=1;
while(tag==1) //tag值为1时相邻两行的对角线有需要更换的数
{ tag=0;
for(m=0;m<2;m++)
if(a[m][3]>a[m+1][0]) //发现需对调的相邻两行对角线数据后:
{ tag=1; //将tag=1;调换对角线数据;对每一行重新排序
/
temp=a[m][3];
a[m][3]=a[m+1][0];
a[m+1][0]=temp;
下面三重循环完成当前二维数组每一行排序//
for(m=0;m<3;m++)
for(i=0;i<4;i++)
for(j=i+1;j<4;j++)
{
if(a[m][i]>a[m][j])
{
temp=a[m][i];
a[m][i]=a[m][j];
a[m][j]=temp;
}
}
/
}
}
//输出排序后的二维数组:
for(i=0;i<3;i++)
{ for(j=0;j<4;j++)
cout<<a[i][j]<<" ";
cout<<endl;
}
}
sort
#include <algorithm>
#include <iostream>
using namespace std;
bool cmp(int a[], int b[])
{ if(a[0] != b[0]) return a[0] > b[0];
if(a[1] != b[1]) return a[1] > b[1];
if(a[2] != b[2]) return a[2] > b[2];
}
int main()
{
int a[6][3] = { {1,4,3}, {1,4,7} , {1,3,5} , {2,9,4} , {2,5,8} , {3,9,6} };
//sort(a, a + 6, cmp); //编译器直接报错。。
sort((int**)a, (int**)(a+6), cmp);
for(int i = 0; i < 6; ++i)
cout<<a[i][0]<<' '<<a[i][1]<<' '<<a[i][2]<<endl;
return 0;}