0
点赞
收藏
分享

微信扫一扫

C语言基础演练(3)

题目要求:

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

例如:

输入: 2  3  6

输入: 6  3  2

算法分析:

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

例如;a b 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)){}

代码:

#include <stdio.h>

int main(){

int a,b,c;

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

int t;

if(a<b){

t=a;

a=b;

b=t;

}

if(a<c){

t=a;

a=c;

c=t;

}

if(b<c){

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 <stdio.h>

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 条评论