输入一个3×3的二维整数矩阵,分别采用冒泡法、交换法编程实现对这9个数字从小到大进行排序,并输出。是有C语言
时间: 2024-01-21 20:18:26 浏览: 52
冒泡排序和交换排序是两种比较简单的排序算法,下面是C语言实现:
```c
#include <stdio.h>
// 冒泡排序
void bubble_sort(int arr[], int len) {
int i, j, tmp;
for (i = 0; i < len - 1; i++) {
for (j = 0; j < len - i - 1; j++) {
if (arr[j] > arr[j+1]) {
tmp = arr[j];
arr[j] = arr[j+1];
arr[j+1] = tmp;
}
}
}
}
// 交换排序
void exchange_sort(int arr[], int len) {
int i, j, tmp;
for (i = 0; i < len - 1; i++) {
for (j = i + 1; j < len; j++) {
if (arr[i] > arr[j]) {
tmp = arr[i];
arr[i] = arr[j];
arr[j] = tmp;
}
}
}
}
int main() {
int arr[3][3];
int i, j, k = 0;
for (i = 0; i < 3; i++) {
for (j = 0; j < 3; j++) {
scanf("%d", &arr[i][j]);
}
}
// 将二维数组转换为一维数组
int len = 3 * 3;
int arr1d[len];
for (i = 0; i < 3; i++) {
for (j = 0; j < 3; j++) {
arr1d[k] = arr[i][j];
k++;
}
}
// 冒泡排序
bubble_sort(arr1d, len);
printf("冒泡排序结果:\n");
for (i = 0; i < len; i++) {
printf("%d ", arr1d[i]);
}
printf("\n");
// 交换排序
exchange_sort(arr1d, len);
printf("交换排序结果:\n");
for (i = 0; i < len; i++) {
printf("%d ", arr1d[i]);
}
printf("\n");
return 0;
}
```
其中,输入的二维矩阵按行优先存储到一维数组中,然后对一维数组进行排序。输出时,将一维数组的结果转换为二维矩阵的形式输出即可。