以冒泡为例
#include<stdio.h>
int judge(int a[3], int b[3]) { //排序方式
if (a[0] != b[0]) //优先比较第一位
return a[0] > b[0];
else if (a[1] != b[1])
return a[1] > b[1];
else
return a[2] > b[2];
}
int main() {
int a[14][3] = { {1,1,1},{1,1,3},{2,1,3},{1,2,1},{2,1,2},{1,2,2},{2,2,2},{1,2,3},{2,2,1},{1,1,2},{1,2,4},{1,3,1},{2,1,1},{2,2,3} };
int tmp[3] = { 0,0,0 }; //用于交换做中间量
for (int i = 0; i < 14; i++) {
for (int j = i+1; j < 14; j++) {
if (judge(a[i], a[j])) {
tmp[0] = a[i][0]; //交换
tmp[1] = a[i][1];
tmp[2] = a[i][2];
a[i][0] = a[j][0];
a[i][1] = a[j][1];
a[i][2] = a[j][2];
a[j][0] = tmp[0];
a[j][1] = tmp[1];
a[j][2] = tmp[2];
}
}
}
for (int i = 0; i < 14; i++) {
for (int j = 0; j < 3; j++) {
printf("%d ", a[i][j]);
}
printf("\n");
}
return 0;
}