C言語でのソートについて質問
shianData配列の一列目が性別、二列目が年齢、三列目が部署です。
これを部署、年齢の優先順位で並べ替えたい。部署は昇順、年齢は降順です。
しかし以下のプログラムですとそれぞれの列が独立に並び替えられてしまいます。
このプログラムを直していただけないでしょうか。できれば解説もお願いします。
#include<stdio.h>
void main(void){
int i,j,Temp;
int shainData[][3]={{0,20,1},{1,34,1},{0,55,1},{1,43,3},{1,21,3},{0,43,3},{0,21,2},{1,67,3},{0,83,3},{0,24,2},{1,56,3},{0,78,3},{0,44,1},{1,33,1},{0,22,2},{1,66,3},{0,55,1},{1,31,1},{0,41,3},{0,43,3}};
for(j=19;j>0;j--){
for(i=0;i<j;i++){
if(shainData[i][2]<shainData[i+1][2]){
Temp=shainData[i][2];
shainData[i][2]=shainData[i+1][2];
shainData[i+1][2]=Temp;
}
}
}
for(j=19;j>0;j--){
for(i=0;i<j;i++){
if(shainData[i][1]<shainData[i+1][1]){
Temp=shainData[i][1];
shainData[i][1]=shainData[i+1][1];
shainData[i+1][1]=Temp;
}
}
}
for(i=0;i<20;i++){
printf("%d %d\n", shainData[i][1],shainData[i][2]);
}
}
補足
値は書き出してみたのですが、どうしてjが3になるのかさっぱりわかりません>< 教えてください!!お願いします!!