返回

降序排序(3)

发布时间:2022-09-30 21:12:20 277
# 数据

题目要求:

输入多组任意三个数进行降序排序。

例如:

输入: 2  3  6

输入: 6  3  2

算法分析:

显然,三个数进行比较大小,两两进行比较,就可以确定顺序。

例如;a b c三个数,

第一次比较:若a

第二次比较:若b

第三次比较:若a

知识点:

1.标准输入函数scanf()和输出函数printf();

2.if(){}控制结构

3.多组输入的处理方法:while(scanf("%d",&n)!=EOF){}或while(~scanf("%d",&n)){}

代码:

#include

int main(){

int a,b,c;

while(~scanf("%d %d %d",&a,&b,&c)){

int t;

if(a

t=a;

a=b;

b=t;

}

if(a

t=a;

a=c;

c=t;

}

if(b

t=b;

b=c;

c=t;

}

printf("%d %d %d\n",a,b,c);

}

return 0;

}

拓展:如果有多个数需要从大到小输出。如10个整数,应该如何编写程序呢?

题目要求:

输入多组任意5个数进行降序排序。

例如:

输入: 1 3 5 7 9

输入: 9 7 5 3 1

算法分析:(注:这里应用选择排序法进行排序处理)

选择排序法原理:每轮循环选出最大值,放入当前循环的最前面的位置。

例如:1 3 5 7 9

第1次循环:从上述五个数中找出最大数9,存入数组a[0];

第2次循环:从剩余的4个数中找出最大数7,存入数组a[1];

第3次循环:从剩余的3个数中找出最大数5,存入数组a[2];

以此往复。

知识点:

1.标准输入函数scanf()和输出函数printf();

2.if()控制结构

3.for()循环语句

4.多组输入的处理方法:while(1){}

代码:

#include

int main(){

while(1){

int a[5]={0};

int i,j;

//输入需要比较数据

for(i=0;i<5;i++){

scanf("%d",&a[i]);

}

//选择排序法

for(i=0;i<5;i++){   //用于取单个数与后边的数据进行比较

for(j=i+1;j<5;j++){

if(a[j]>a[i]){

int t;

t=a[i];

a[i]=a[j];

a[j]=t;

}

}

}

//输出

for(i=0;i<5;i++){

printf("%d ",a[i]);

}

printf("\n");

}

return 0;

}

_______________________END_______________________











特别声明:以上内容(图片及文字)均为互联网收集或者用户上传发布,本站仅提供信息存储服务!如有侵权或有涉及法律问题请联系我们。
举报
评论区(0)
按点赞数排序
用户头像
精选文章
thumb 中国研究员首次曝光美国国安局顶级后门—“方程式组织”
thumb 俄乌线上战争,网络攻击弥漫着数字硝烟
thumb 从网络安全角度了解俄罗斯入侵乌克兰的相关事件时间线