大家好鸭😎,前几期的EduCoder题解,阅读量超过了之前的好多文章!谢谢大家的阅读。
如果题目AC的话,求一个免费的赞噢👻
如果有编程相关的问题,可以一起交流探讨😊。
QQ:3199902692(加好友的验证消息,填写CSDN就可以啦)
任务描述
本关任务:将十个数进行从大到小的顺序进行排列。
编程要求
根据提示,在右侧编辑器Begin-End处补充代码。
输入
输入十个整数。
输出
以从大到小的顺序输出这个十个数。
测试说明
样例输入:
1 2 3 4 5 6 7 8 9 10
样例输出:
10 9 8 7 6 5 4 3 2 1
#include <stdio.h>
int max(int a[],int len);
int main()
{
int a[10];
int maxid;
int len = sizeof(a)/sizeof(a[0]);
for(int i = 0;i <10;i++)
{
int temp;
scanf("%d",&temp);
a[i] = temp;
}
/*不断地将大的数字往数组的最后面放
即:做交换(swap)
*/
for(int i = len -1;i>0;i--)
{
maxid = max(a,i+1); //调用max()函数以求得每一次循环的最大数的位置
int t = a[maxid];
a[maxid] = a[i];
a[i] = t;
}
//遍历已按顺序排好的数组并输出
for(int i = 0;i<len;i++)
{
printf("%d ",a[i]);
}
printf("\n");
return 0;
}
//选出数组中最大的数字的函数
int max(int a[],int len)
{
int i,maxid=0;
for(i = 1;i<len;i++)
{
if(a[i]<a[maxid])
{
maxid = i;
}
}
return maxid;
}