解题思路:
我用的并不是选择法而是冒泡排序,思路是10个数之间两两比较,第一轮比较9次即可得出最大值,同理第二次比较依然可以得到次大值,依此类推总共比较9轮即可得到最终的排序结果,我这里提供了两种算法,第一种是在主函数里面进行操作,第二种是定义一个函数 ,在函数里面操作,其原理相同,大家可以自行选择一种算法借鉴
注意事项:
两次循环皆是比较9次而不是10次
如果这篇文章对您有帮助,请您为我点个赞,又不懂的可以评论,我会为您解答
参考代码:
/*用选择法对10个整数从小到大排序。*/
#include<stdio.h>
int main()
{
int a[10];
int i = 0, t = 0, j = 0;
for(i=0; i<10; i++)
{
scanf("%d", &*(a+i));
}
for(i=0; i<9; i++)
{
for(j=0; j<9-i; j++)
{
if(a[j]>a[j+1])
{
t = a[j];
a[j] = a[j+1];
a[j+1] = t;
}
}
}
for(i=0 ; i<10; i++)
{
printf("%d\n", *(a+i));
}
return 0;
}
/*#include<stdio.h>
void sort (int *a, int len)
{
int t = 0, i = 0, j = 0;
for(i=0; i<len-1; i++)
{
for(j=0; j<len-1-i; j++)
{
if(a[j]>a[j+1])
{
t = a[j];
a[j] = a[j+1];
a[j+1] = t;
}
}
}
return;
}
int main()
{
int a[10];
int i;
for(i=0; i<10; i++)
{
scanf("%d", &*(a+i));
}
sort(a, 10);
for(i=0; i<10; i++)
{
printf("%d\n", *(a+i));
}
return 0;
}*/
0.0分
0 人评分
C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:
一点编程也不会写的:零基础C语言学练课程
解决困扰你多年的C语言疑难杂症特性的C语言进阶课程
从零到写出一个爬虫的Python编程课程
只会语法写不出代码?手把手带你写100个编程真题的编程百练课程
信息学奥赛或C++选手的 必学C++课程
蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程
手把手讲解近五年真题的蓝桥杯辅导课程
发表评论 取消回复