C++ 输入一个3×3的二维整数矩阵,分别采用冒泡法、交换法编程实现对这9个数字从小到大进行排序,并输出。
时间: 2023-06-12 12:06:29 浏览: 161
以下是使用冒泡排序和交换排序两种方法实现对一个3x3整数矩阵排序的C语言代码:
#include <stdio.h>
void bubble_sort(int arr[], int n) {
int i, j, temp;
for (i = 0; i < n - 1; i++) {
for (j = 0; j < n - i - 1; j++) {
if (arr[j] > arr[j + 1]) {
temp = arr[j];
arr[j] = arr[j + 1];
arr[j + 1] = temp;
}
}
}
}
void exchange_sort(int arr[], int n) {
int i, j, temp;
for (i = 0; i < n - 1; i++) {
for (j = i + 1; j < n; j++) {
if (arr[j] < arr[i]) {
temp = arr[j];
arr[j] = arr[i];
arr[i] = temp;
}
}
}
}
void print_matrix(int matrix[][3]) {
int i, j;
for (i = 0; i < 3; i++) {
for (j = 0; j < 3; j++) {
printf("%d ", matrix[i][j]);
}
printf("\n");
}
}
int main() {
int matrix[3][3];
int arr[9];
int i, j, k = 0;
printf("请输入一个3x3的整数矩阵:\n");
for (i = 0; i < 3; i++) {
for (j = 0; j < 3; j++) {
scanf("%d", &matrix[i][j]);
arr[k++] = matrix[i][j];
}
}
printf("排序前的矩阵:\n");
print_matrix(matrix);
bubble_sort(arr, 9);
printf("冒泡排序后的矩阵:\n");
for (i = 0; i < 3; i++) {
for (j = 0; j < 3; j++) {
matrix[i][j] = arr[k++];
printf("%d ", matrix[i][j]);
}
printf("\n");
}
k = 0;
exchange_sort(arr, 9);
printf("交换排序后的矩阵:\n");
for (i = 0; i < 3; i++) {
for (j = 0; j < 3; j++) {
matrix[i][j] = arr[k++];
printf("%d ", matrix[i][j]);
}
printf("\n");
}
return 0;
}
以上代码中,我们使用 bubble_sort
函数和 exchange_sort
函数分别实现了冒泡排序和交换排序,然后在主函数中,我们先读取用户输入的3x3整数矩阵,然后将矩阵中的所有元素放入一个一维数组中进行排序,最后将排好序的元素重新放回矩阵中并打印输出。
相关推荐









