原题链接:[编程入门]选择排序
解题思路:
这道题让输出升序,所以,选择排序是通过反复的求最小值的方法实现排序的
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、信息学奥赛的必学课程:算法竞赛课入门课程
手把手讲解近五年真题的蓝桥杯辅导课程
发表评论 取消回复