任务描述
本关任务:获取从键盘输入3个数,要求按从大到小的顺序输出这3个数。
相关知识
程序并不会总是执行同样的处理。例如,按下某个键的时候执行 A 处理,按下其他键的时候执行 B 处理…… 像这样,程序通过条件判断的结果选择性地执行某种处理的情况是非常多见的。
本关将带领大家学习根据条件改变程序流程的基本方法。
if 语句
大家的每天都是怎么度过的呢?应该不会是日复一日地按照同样地生活模式吧。不管大家是否已经意识到了,其实我们都是通过某种判断来决定自己的行动。例如,因为今天好像要下雨,所以出门必须要带伞。
下面我们就通过程序来判断,那么首先我们要学习 if 语句,也就是我们所说的“如果”。 if 语句的一般形式如下:
if(表达式) 语句1
[else 语句2]
其中,“表达式”可以是关系表达式、逻辑表达式、甚至是数值表达式。如果表达式的值为真,则执行“语句1”,否则执行“语句2”。
“语句1”和“语句2”可以是一个简单的语句,也可以是一个复合语句,还可以是另一个 if 语句(即在一个 if 语句中又包括另一个或多个内嵌的 if 语句)。
例如,输出 a,b 中的最大值,可以用以下语句表示:
int a = 3, b = 5;
if ( a > b ) // a>b,则执行 if 语句
printf("%d",a);
else // a<=b,则执行 else 语句
printf("%d",b);
输出结果为:5
交换变量的值
在 C 语言中,实现交换两个变量的值方法有多种,如设置中间变量,用加减或乘除运算来交换,用异或运算来交换,用位运算来交换等,这里介绍一种最简单最常用的方法,即中间变量法。
例如,将两个数按由小到大的顺序输出:
#include <stdio.h>
int main()
{
float a,b,t; // t 为中间变量
scanf("%f,%f",&a,&b);
if (a > b)
{
//将 a 和 b 的值互换
t = a;
a = b;
b = t;
}
printf("%5.2f,%5.2f\n",a,b);
return 0;
}
编程要求
在右侧编辑器中的Begin-End
之间补充代码,获取平台输入的3个数(数与数直接用空格隔开),然后按由大到小的顺序输出这三个数。
测试说明
平台会对你编写的代码进行测试,比对你输出的数值与实际正确数值,只有所有数据全部计算正确才能通过测试:
测试输入:55.2 62 22
预期输出:62 55.2 22
测试输入:11 22 33
预期输出:33 22 11
开始你的任务吧,祝你成功!
#include <stdio.h>
//定义main函数
int main(){
//定义三个数
float a,b,c,temp;
//请在此添加‘输入三个数,按由大到小顺序输出这三个数’的代码
/********** Begin **********/
scanf("%f %f %f",&a,&b,&c);
float p[3]={a,b,c};
for(int i=3;i>0;--i){
for(int r=0;r<i-1;++r){
if(p[r]<p[r+1]){
temp=p[r];
p[r]=p[r+1];
p[r+1]=temp;
}
}
}
printf("%g %g %g",p[0],p[1],p[2]);
return 0;
}