二維陣列 `a` 按 `a[i][0]` 降序排列,整行元素跟隨交換。
#include <stdio.h>
void swapRows(int arr[][2], int row1, int row2, int cols) {
for (int k = 0; k < cols; k++) {
int tmp = arr[row1][k];
arr[row1][k] = arr[row2][k];
arr[row2][k] = tmp;
}
}
int main() {
int num[3][2] = {{5,2},{3,1},{2,9}};
int rows = 3, cols = 2;
for (int i = 0; i < rows - 1; i++) {
for (int j = 0; j < rows - 1 - i; j++) {
if (num[j][0] > num[j+1][0]) { // 降序:大者前移
swapRows(num, j, j+1, cols);
}
}
}
for (int i = 0; i < rows; i++) {
for (int j = 0; j < cols; j++) printf("%d ", num[i][j]);
printf("\n");
}
return 0;
}