输入三个整数x,y,z,请把这三个数由小到大输出。
输入格式:
在一行中直接输入3个整数,之间各用一个空格间隔。
输出格式:
在一行中按照“x=最小值,y=次小值, z=最大值”的顺序输出结果,最大值、次大值和最小值均原样输出,没有宽度控制。
输入样例:
2 1 3
输出样例:
x=1,y=2,z=3
分析:
- 代码首先通过
scanf
函数从用户那里接收三个整数a、b、c。 - 然后,代码通过三个连续的
if
语句块对这三个数字进行升序排序。 - 第一个
if
语句检查a是否大于b,如果是,则交换a和b的值。这样,a始终大于或等于b。 - 第二个
if
语句检查a是否大于c,如果是,则交换a和c的值。这样,a始终大于或等于c。 - 第三个
if
语句检查b是否大于c,如果是,则交换b和c的值。这样,b始终大于或等于c。 - 最后,代码使用
printf
函数打印排序后的结果。
C语言:
#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("x=%d,y=%d,z=%d", a,b,c);
return 0;
}
结果:
总结:
这段代码是按照x、y、z的顺序打印的,但实际上在处理过程中,a始终是最大的,b次之,c最小。所以输出的顺序与处理逻辑不完全一致,可能会让读者产生困惑。如果要明确表示出排序后的结果,可以考虑更改输出语句为“a=%d,b=%d,c=%d”,或者在处理过程中使用额外的变量来存储排序后的结果。