一:代码实现:
#include<stdio.h>
int main()
{
int a = 0;
int b = 0;
int c = 0;
scanf("%d %d %d", &a, &b, &c);
if (a < b)
{
int tmp = a;
a = b;
b = tmp;
}
if (a < c)
{
int tmp = a;
a = c;
c = tmp;
}
if (b < c)
{
int tmp = b;
b = c;
c = tmp;
}
printf("%d %d %d\n", a, b, c);
return 0;
}
二、代码讲解:
#include<stdio.h>
int main()
{
int a = 0;
int b = 0;
int c = 0;
//输入
scanf("%d %d %d", &a, &b, &c);
//计算
//若按printf("%d %d %d\n", a, b, c)这样的预期输出;
//则这样的输出顺序要保证最大值在a,最小值在c中
//把a和b的较大值放到a里边,再把a和c的较大值放到a里,即保证a,b,c中a最大。b和c比,把较大值放到b里,把较小值放到c里。c
//a和b的较大值放到a中:
if (a < b)//如果a>b就没必要比较了
{
//两个变量交换需要第三个变量
int tmp = a;//把a先放到tmp中,
a = b;//这时就可以放b了。
b = tmp;//不是b=a
}//此时就把a和b的值交换了。需要临时变量tmp来交换a和b的值。
//把b和c的较大值放到c中
if (a < c)//若a>c就不用了
{
int tmp = a;//先把a的值赋给tmp,a就空了,c的值放到a里去,c就空了,tmp放到c里,这就交换了。
a = c;
c = tmp;
}
//以上的两个if完成的是a,b,c中的最大值。
// 把b和c的较大值放到b中
if (b < c)//如果b>c就没必要了
{
int tmp = b;
b = c;
c = tmp;
}
//输出
printf("%d %d %d\n", a, b, c);
return 0;
}
或
#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 = a;
}
if (b < c)
{
t = b;
b = c;
c = t;
}
printf("a=%d,b=%d,c=%d\n", a, b, c);
system("pause");
return 0;
}
标注:
system ("pause ")意思就是让程序暂停一下,然后按任意键继续。
(在此处加不加这行代码都可以)
初学的时候最多见于程序的末尾处,用于看运行结果,避免程序一闪而过。
相同的我们还可以用getchar (),避免程序运行完直接结束而看不到运行结果。
注意:
如果要比较的变量较多,如10个数字,则不用上面的 if 语句,因为罗列过于复杂。