输入一个3×3的二维整数矩阵,分别采用冒泡法、交换法编程实现对这9个数字从小到大进行排序,并输出。
例如,输入为: ,则输出为: 。
【其中选择法排序的思路提示:设有10个元素a[1]a[10],将a[1]与a[2]a[10]比较,若a[1]比a[2]a[10]都小,则不进行交换,即无任何操作。若a[2]a[10]中有一个以上比a[1]小,则将其中最小的一个(假设为a[i])与a[1]交换,此时a[1]中存放了10个中最小的数。第二轮将a[2]与a[3]a[10]比较,将剩下9个数中的最小值a[i]与a[2]对换,此时a[2]中存放的是10个中第二小的数。以此类推,共进行9轮比较,a[1]a[10]就已按由小到大的顺序存放了。】
c语言问题希望大家指导一下
- 写回答
- 好问题 0 提建议
- 追加酬金
- 关注问题
- 邀请回答
-
4条回答 默认 最新
- 语言-逆行者 2023-04-17 22:24关注
参考学习:
#include <stdio.h> void bubble_sort(int arr[3][3], int len) { int i, j, temp; for (i = 0; i < len - 1; i++) { for (j = 0; j < len - 1 - i; j++) { if (arr[j][0] > arr[j + 1][0]) { temp = arr[j][0]; arr[j][0] = arr[j + 1][0]; arr[j + 1][0] = temp; } } } } void exchange_sort(int arr[3][3], int len) { int i, j, temp; for (i = 0; i < len - 1; i++) { for (j = i + 1; j < len; j++) { if (arr[i][0] > arr[j][0]) { temp = arr[i][0]; arr[i][0] = arr[j][0]; arr[j][0] = temp; } } } } int main() { int matrix[3][3]; int i, j; // 输入矩阵 for (i = 0; i < 3; i++) { for (j = 0; j < 3; j++) { scanf("%d", &matrix[i][j]); } } // 冒泡排序 bubble_sort(matrix, 9); // 输出排序结果 printf("冒泡排序结果:\n"); for (i = 0; i < 3; i++) { for (j = 0; j < 3; j++) { printf("%d ", matrix[i][j]); } printf("\n"); } // 交换排序 exchange_sort(matrix, 9); // 输出排序结果 printf("交换排序结果:\n"); for (i = 0; i < 3; i++) { for (j = 0; j < 3; j++) { printf("%d ", matrix[i][j]); } printf("\n"); } return 0; }
以上代码中,定义了两个函数 bubble_sort 和 exchange_sort 分别代表冒泡法排序和交换法排序。在主函数中,首先输入一个3x3的矩阵;然后使用冒泡法和交换法对这9个数字从小到大进行排序,并输出排序结果。
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 1无用
悬赏问题
- ¥50 关于#html5#的问题:H5页面用户手机返回的时候跳转到指定页面例如(语言-javascript)
- ¥15 无法使用此凭据登录,因为你的域不可用,如何解决?(标签-Windows)
- ¥15 yolov9的训练时间
- ¥15 二叉树遍历没有报错但无法正常运行
- ¥15 在linux系统下vscode运行robocup3d上场球员报错
- ¥15 Python语言实验
- ¥15 SAP HANA SQL 增加合计行
- ¥20 用C#语言解决一个英文打字练习器,有偿
- ¥15 srs-sip外部服务 webrtc支持H265格式
- ¥15 在使用abaqus软件中,继承到assembly里的surfaces怎么使用python批量调动