降序排序是从小到大还是从大到小,降序排序是什么意思
主题要求:
输入任意三组数字以降序排序。
例如:
输入:2 3 6
输入:6 3 2
算法分析:
显然,通过比较三个数的大小,两两比较,就可以确定顺序。
比如说;a,c,三个数字,
第一个比较:如果a b,那么b a C。
第二次比较:如果b c,c a b
第三比较:如果a b,C B A。
知识点:
1.标准输入函数scanf()和输出函数printf();
2.if(){}控制结构
3.多组输入的处理方法:while(scanf(%d ,n)!=EOF){}或while(~scanf(%d ,n)){}
代码:
#包含stdio.h
int main(){
int a,b,c;
while(~scanf(%d %d %d ,a,b,c)){
int t;
如果(a b){
t=a;
a=b;
b=t;
}
如果(a c){
t=a;
a=c;
c=t;
}
如果(b c){
t=b;
b=c;
c=t;
}
printf(%d %d %d\n ,a,b,c);
}
返回0;
}
扩展:如果有多个数字需要从大到小输出。比如10个整数,我应该怎么写程序?主题要求:
输入多组任意5个数字,以降序排序。
例如:
输入:1 3 5 7 9
输入:9 7 5 3 1
算法分析:(注:此处使用选择性排序法进行排序)
排序方法原理:在每个周期中选取最大值,放在当前周期的最前面位置。
例如:1 3 5 7 9
第一个循环:从上述五个数中找出最大的数9,存入数组a[0];
第二个循环:从剩下的4个数中找出最大的数7,存入数组a[1];
第三个循环:从剩下的3个数中找出最大的数5,存入数组a[2];
以便往复运动。
知识点:
1.标准输入函数scanf()和输出函数printf();
2.if()控制结构
3.for()循环语句
4.多组输入的处理方法:while(1){}
代码:
#包含stdio.h
int main(){
while(1){
int a[5]={ 0 };
int i,j;
//输入要比较的数据
for(I=0;i i ){
scanf(%d ,a[I]);
}
//选择排序方法
for(I=0;I){//用来比较获取的文档数和后面的数据。
for(j=I ^ 1;j j ){
if(a[j] a[i]){
int t;
t=a[I];
a[I]=a[j];
a[j]=t;
}
}
}
//输出
for(I=0;i i ){
printf(%d ,a[I]);
}
printf( \ n );
}
返回0;
}
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _结束_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
来自。评论0发表评论。
wx62ccc6380c7e6
2022-07-13 23:26
改正它
输入:1 3 5 7 9
产量:9 7 5 3 1
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。