解题思路:
我用的并不是选择法而是冒泡排序,思路是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语言程序设计教程(第三版)课后习题4.9 (C++代码)浏览:2209 |
C语言程序设计教程(第三版)课后习题1.6 (C语言代码)浏览:725 |
回文数字 (C++代码)浏览:890 |
C语言程序设计教程(第三版)课后习题7.4 (C++代码)(和输入10个数排序没有区别,直接sort即可)浏览:2138 |
点我有惊喜!你懂得!浏览:1440 |
破解简单密码 (C语言代码)浏览:1867 |
【亲和数】 (C语言代码)浏览:590 |
不容易系列2 (C语言代码)浏览:644 |
C语言程序设计教程(第三版)课后习题5.7 (C语言代码)浏览:785 |
C语言程序设计教程(第三版)课后习题7.2 (C语言代码)浏览:687 |