:首先定义三个数,再利用if逐个判断
前言
:主要是对我本人平时写代码问题的总结和记录,仅供参考
一、方法(一)
1.定义
代码如下(示例):
int main()
{
int a = 0;
int b = 0;
int c = 0;
scanf("%d %d %d", &a, &b, &c);
2.判断a>b的情况
代码如下(示例):
if (a > b)
{
if (b > c)
{
printf("%d %d %d", a, b, c);
}
else if (b < c)
{
if (a > c) {
printf("%d %d %d", a, c, b);
}
else
printf("%d %d %d", c, a, c);
}
}
3.判断a<b的情况
代码如下(示例):
else if (a < b)
{
if (b < c)
{
printf("%d %d %d", c, b, a);
}
if (b > c)
{
if (a > c) {
printf("%d %d %d", b, a, c);
}
}
}
return 0;
}
该思路分为a>b和a<b两种情况的判断,进一步判断b和c的关系,再判断a和c的关系,进而得出三个数的大小顺序并打印(共判断了6次)
三、方法(二)
:方法二不同的是定义一个tmp用来赋值,不用反复的判断a、b、c之间的关系,始终把最大的值赋给a,大值往左边传送(只用进行三次判断)
1.定义
代码如下(示例):
int main()
{
int a = 0;
int b = 0;
int c = 0;
int tmp = 0;
scanf("%d %d %d", &a, &b, &c);
2.判断和比较
代码如下(示例):
if (a < b)
{
tmp = a;
a = b;
b = tmp;
}
if (a < c)
{
tmp = a;
a = c;
c = tmp;
}
if (b < c)
{
tmp = b;
b = c;
c = tmp;
}
printf("%d%d%d", a, b, c);
return 0;
}
总结
第二种方法相对于第一种思路较为清晰和简便,只用判断三次,第一种方法笨拙且需要判断6次。
想起从前小学,比较三个数的大小也是通过三次判断得出结论。
在这里,第二种方法也是如此,第一种有点无脑了,光想着用if来判断,打印的时候还得思考一下判断出来的顺序,希望通过这次的总结能得到经验,下次灵活一点。