题目分析:
很简单,依次比较三个数的大小进行排序,最后输出即可。
代码实现:
#include<stdio.h>
int main()
{
int x, y, z, t;
printf("请输入三个整数:");
scanf_s("%d,%d,%d", &x, &y, &z);
if (x > y) {
if (x > z) {
if (y > z) {
printf("%d,%d,%d", z, y, x);
}else
printf("%d,%d,%d", y, z, x);
}
//.....没写完,这个写法太麻烦。。。。
}
return 0;
}
是啊,如果这么写实在是麻烦,那我们应该想一想怎样写才会不重复且很方便解决这个问题!!!
于是,它来了!!!
#include <stdio.h>
int main()
{
int x, y, z, t;
printf("请输入您想要排序的三个数字:");
scanf_s("%d,%d,%d", &x, &y, &z);
if (x > y) { //交换x,y的值
t = x;
x = y;
y = t;
}
if (x > z) { //交换x,z的值
t = x;
x = z;
z = t;
}
if (y > z) { //交换z,y的值
t = y;
y = z;
z = t;
}
printf("这三个数从小到大依次排序为: %d %d %d", x, y, z);
return 0;
}
是吧,这样看起来舒服多了!!!
代码分析:
这里我们引入了一个中间变量,使得x,y,z能够交换排序。
思考一下:
如果我们不引用中间变量能否成功实现这样的效果。应该是可以的。
2022年7月于福建
——暮炊雪