自定义一个有10个元素int类型的一维数组:然后利用选择法进行从小到大排序以及从大到小排序。
要求:
1) int类型10元素一维数组,允许事先自定义初始化
2) 请使用自定义函数实现从小到大排序
3) 请使用自定义函数实现从大到小排序
4) 请使用自定义函数实现排序后的数组输出
C语言新手求助这个怎么写呀
- 写回答
- 好问题 0 提建议
- 追加酬金
- 关注问题
- 邀请回答
-
2条回答 默认 最新
- 战在春秋 2017-06-15 21:32关注
代码如下:
#include<stdio.h> #include<stdlib.h> #define N 10 void select_sort_min(int a[], int n); void select_sort_max(int a[], int n); void display(int a[], int n); void display(int a[], const int n) { int i; for (i = 0; i < n; i++) { printf("%d ", a[i]); } printf("\n"); } //选择排序实现-----从小到大 void select_sort_min(int a[], int n)//n为数组a的元素个数 { //进行N-1轮选择 for (int i = 0; i < n - 1; i++) { int min_index = i; //找出第i小的数所在的位置 for (int j = i + 1; j < n; j++) { if (a[j] < a[min_index]) { min_index = j; } } //将第i小的数,放在第i个位置;如果刚好,就不用交换 if (i != min_index) { int temp = a[i]; a[i] = a[min_index]; a[min_index] = temp; } } } //选择排序实现-----从大到小 void select_sort_max(int a[], int n)//n为数组a的元素个数 { //进行N-1轮选择 for (int i = 0; i < n - 1; i++) { int max_index = i; //找出第i大的数所在的位置 for (int j = i + 1; j < n; j++) { if (a[j] > a[max_index]) { max_index = j; } } //将第i大的数,放在第i个位置;如果刚好,就不用交换 if (i != max_index) { int temp = a[i]; a[i] = a[max_index]; a[max_index] = temp; } } } int main() { int num[N] = { 9,17,99,7,4,8,12,0,11,6 }; printf("排序前: \n"); display(num, N); select_sort_min(num, N); printf("从小到大排序:\n"); display(num, N); select_sort_max(num, N); printf("从大到小排序: \n"); display(num, N); return 0; }
用心回答每个问题,如果对您有帮助,请采纳答案好吗,谢谢!
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报
悬赏问题
- ¥20 基于MSP430f5529的MPU6050驱动,求出欧拉角
- ¥20 Java-Oj-桌布的计算
- ¥15 powerbuilder中的datawindow数据整合到新的DataWindow
- ¥20 有人知道这种图怎么画吗?
- ¥15 pyqt6如何引用qrc文件加载里面的的资源
- ¥15 安卓JNI项目使用lua上的问题
- ¥20 RL+GNN解决人员排班问题时梯度消失
- ¥60 要数控稳压电源测试数据
- ¥15 能帮我写下这个编程吗
- ¥15 ikuai客户端l2tp协议链接报终止15信号和无法将p.p.p6转换为我的l2tp线路