C语言输入3乘3二维数组选出他的最大的排序
时间: 2023-06-13 12:04:59 浏览: 61
可以使用冒泡排序或选择排序来实现二维数组的排序。
下面是使用选择排序的示例代码:
```c
#include <stdio.h>
#define ROWS 3
#define COLS 3
int main() {
int arr[ROWS][COLS];
int i, j, max, max_i, max_j;
// 输入二维数组
printf("请输入%d行%d列的二维数组:\n", ROWS, COLS);
for (i = 0; i < ROWS; i++) {
for (j = 0; j < COLS; j++) {
scanf("%d", &arr[i][j]);
}
}
// 选择排序
for (i = 0; i < ROWS * COLS; i++) {
max = arr[i / COLS][i % COLS];
max_i = i / COLS;
max_j = i % COLS;
for (j = i + 1; j < ROWS * COLS; j++) {
if (arr[j / COLS][j % COLS] > max) {
max = arr[j / COLS][j % COLS];
max_i = j / COLS;
max_j = j % COLS;
}
}
if (i != max_i * COLS + max_j) {
arr[max_i][max_j] = arr[i / COLS][i % COLS];
arr[i / COLS][i % COLS] = max;
}
}
// 输出排序后的二维数组
printf("排序后的二维数组:\n");
for (i = 0; i < ROWS; i++) {
for (j = 0; j < COLS; j++) {
printf("%d ", arr[i][j]);
}
printf("\n");
}
return 0;
}
```
该代码中,首先通过嵌套循环输入二维数组。然后使用选择排序对数组进行排序,每次找到未排序部分的最大值,并将其与未排序部分的第一个元素交换位置。循环结束后,数组就变成了从大到小排序的状态。最后再通过嵌套循环输出排序后的数组。