自定义一个有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; }
用心回答每个问题,如果对您有帮助,请采纳答案好吗,谢谢!
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报
悬赏问题
- ¥15 彩灯控制电路,会的加我QQ1482956179
- ¥200 相机拍直接转存到电脑上 立拍立穿无线局域网传
- ¥15 (关键词-电路设计)
- ¥15 如何解决MIPS计算是否溢出
- ¥15 vue中我代理了iframe,iframe却走的是路由,没有显示该显示的网站,这个该如何处理
- ¥15 操作系统相关算法中while();的含义
- ¥15 CNVcaller安装后无法找到文件
- ¥15 visual studio2022中文乱码无法解决
- ¥15 关于华为5g模块mh5000-31接线问题
- ¥15 keil L6007U报错