就好比每个学生3门成绩,对英语成绩进行排序。这在数据库管理中叫索引排序
#include<stdio.h>
#define N 3
#define M 3
void main() { int a[N][M]={ {1,5,8},{7,8,3},{4,6,5} },i,j,k,index[N];
for ( i=0;i<N;i++ ) index[i]=i; //index数组记录原始顺序
for ( i=0;i<N-1;i++ )
for ( j=i+1;j<N;j++ ) //根据第0列比大小的结果交换index的顺序,即用索引排序
if ( a[index[i]][0]<a[index[j]][0] ) { k=index[i];index[i]=index[j];index[j]=k; }
for ( i=0;i<N;i++ ) { //这里index的顺序就是第0列大小顺序的a数组行号
for ( j=0;j<M;j++ ) printf("%d ",a[index[i]][j]); printf("\n");
}
}
索引的原始未排序的顺序是:0 1 2
排序后变成:1 2 0
追问我这是二维数组啊