今天给大家带来一道比较经典的题目——三个数从大到小顺序输出,这里笔者学的还不多,就用一种方法给大家抛砖引玉一下。(笔者这里用的编译器是VC2022)
大家仔细思考一下,三个数比大小,只存在三种关系,即a与b, a与c, b与c的关系, 每两个数字之间的关系为非是>, <, =,三种,也就是说我们可以只用三个if语句来判断a, b, c 的大小。初步的代码如下:
if (a < b || a ==b)
if (a < c || a == c)
if (b < c || b == c)
这里笔者关系统一用的是<, 因为题目要求的是从大到小输入,用“<”的好处就在与当数字不是从小到大开始我们都可以通过这三个语句调整过来,确立了主要思路,就该想想if语句里的内容,实际上从上面“<” 的想法里能猜到一点点了,同样也是让我们在语句里调整a, b, c, 的关系,让三个数字进入任意一个语句里都可以让关系变成大到小,即我们默认a > b > c,最后仍然输出a > b > c, 而让进入任一一个if语句中的数字由大到小赋给a, b, c, 这样整个过程就变得一致起来,不进入语句的就是我们默认的a > b > c, 进入语句的都会被我们赋值调整成a > b > c, 当然在赋值过程中,需要引进一个中间变量用来赋值,另外等于的情况下思路和上面一致,就不再赘述。整个代码如下:
#include<stdio.h>
int main()
{
int a = 0;
int b = 0;
int c = 0;
int ciao = 0;//ciao 是笔者随意取的一个中间变量
scanf(“%d %d %d”, &a, &b, &c);
if (a < b || a ==b)
{
ciao = a;
a = b;
b = ciao;
}
if (a < c || a == c)
{
ciao = a;
a = c;
c = ciao;
}
if (b < c || b == c)
{
ciao = b;
b = c;
c = ciao;
printf(“%d %d %d”, a, b, c);
}
else
{
printf(“%d %d %d”, a, b, c);
}
return 0;`