#include <stdio.h>
int main()
{
int a,b,c;
scanf("%d%d%d",&a,&b,&c);
if(a<=b&&b<=c) printf("%d %d %d\n",a,b,c);
else if(a<=c&&c<=b) printf("%d %d %d\n",a,c,b);
else if(b<=a&&a<=c) printf("%d %d %d\n",b,a,c);
else if(b<=a&&c<=a) printf("%d %d %d\n",b,c,a);
else if(c<=a&&a<=b) printf("%d %d %d\n",c,a,b);
else if(c<=a&&b<=a) printf("%d %d %d\n",c,b,a);
return 0;
}
int main()
{
int a,b,c;
scanf("%d%d%d",&a,&b,&c);
if(a<=b&&b<=c) printf("%d %d %d\n",a,b,c);
else if(a<=c&&c<=b) printf("%d %d %d\n",a,c,b);
else if(b<=a&&a<=c) printf("%d %d %d\n",b,a,c);
else if(b<=a&&c<=a) printf("%d %d %d\n",b,c,a);
else if(c<=a&&a<=b) printf("%d %d %d\n",c,a,b);
else if(c<=a&&b<=a) printf("%d %d %d\n",c,b,a);
return 0;
}
对于三个数的大小比较,对初学者来说是特别容易出错的,可能就是6个if语句就以为解决了,而最后的答案却大相径庭。所以我们在思考问题的时候应该理清思路,站在算法的角度上来考虑问题。
以上的一段代码是用的一个if加上5个else if组成的,当第一个判断语句不符合则会跳入下一个判断语句,一直到符合或者代码结束。这里再介绍一种初学者很难想到的方法:
#include <stdio.h>
int main()
{
int a,b,c,t;
scanf("%d%d%d",&a,&b,&c);
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",a,b,c);
return 0;
}
这里是通过增加了一个中间变量,本人觉得这种方法更直观,也很巧妙。