原题链接:[编程入门]选择排序
解题思路:
这道题让输出升序,所以,选择排序是通过反复的求最小值的方法实现排序的
1、将10个数存入一维数组a中。
2、然后找出数组中的最小值存入a[0]中;
(那么如何求最小值呢)
/*如果a[0]的值大于a[j],将a[0]与a[j]的值交换*/ for (j = 0; j <= 9; j++) { if (a[0] > a[j]) { t = a[0]; /* 将a[0]的值存入t中避免数据丢失*/ a[0] = a[j]; a[j] = t; } } /*下述同理*/
3、再找出数组中第二小的数存入a[1]中;
4、再找出数组中第三小的数存入a[2]中;
...
...
从而完成降序排序
最后输出排序后的数据
注意事项:
参考代码:
#include<stdio.h> int main(void) { int i, j, t, a[10]; for (i = 0; i <= 9; i++) scanf("%d", &a[i]); /*输入十个数存入数组a中*/ for (i = 0; i <= 9; i++) { for (j = i+1; j <= 9; j++) { if (a[i] > a[j]) { t = a[i]; a[i] = a[j]; a[j] = t; /*将a[i]与a[j]的值交换,从而找出每次循环的最小值*/ } } printf("%d\n", a[i]); /*每次循环结束输出最小值*/ } return 0; }
第一次发帖子,如果代码存在问题希望能指出不足。
0.0分
2 人评分
C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:
一点编程也不会写的:零基础C语言学练课程
解决困扰你多年的C语言疑难杂症特性的C语言进阶课程
从零到写出一个爬虫的Python编程课程
只会语法写不出代码?手把手带你写100个编程真题的编程百练课程
信息学奥赛或C++选手的 必学C++课程
蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程
手把手讲解近五年真题的蓝桥杯辅导课程
发表评论 取消回复