求大哥帮助!
#include <stdio.h>int main()
{
int a, b, c, t;
printf("请输入3个整数(使用空格隔开):");
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\n", a, b, c);
return 0;
}
这是什么意思啊,兄弟们
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;
}
a>b a和b数值交换
a>c a和c数值交换
b>c b和c数值交换
达到a、b、c从小到大排序功能 jhq999 发表于 2021-12-11 16:44
a>b a和b数值交换
a>c a和c数值交换
b>c b和c数值交换
能详细的吗
t = a;
a = b;
b = t;
不理解这个东西是怎么操作的。 何艺铧 发表于 2021-12-11 17:01
能详细的吗
t = a;
a = b;
a,b,c是你用键盘输入的,而t没有给它赋值,那么t现在就是空的
而"="是赋值运算符,把右边的值赋值给左边,
那么
t = a;
a = b;
b = t;
就是说先把a值赋给t,然后a里面为空,t里面就存放了a原先的值,b = a;就把b值赋给空的a,b就相当于空了,最后把t里面的a值赋给b,达到a和b数值交换的结果,t充当了交换的桥梁,同理,a和c,b和c也一样。
简单来说是a 和b 的数据之间交换,中间要有介质t 来保存其中一个数据,防止数据丢失 本帖最后由 jackz007 于 2021-12-11 18:32 编辑
执行完下面的代码,可以保证 a < b && a <c ,就是说,在 a、b、c 中,a 一定是最小的那一个。
if (a > b)
{
t = a;
a = b;
b = t;
}
if (a > c)
{
t = a;
a = c;
c = t;
}
前面的代码已经确定在 a、b、c中,a 最小,那么,执行完下面的代码便可以保证 b < c
if (b > c)
{
t = b;
b = c;
c = t;
}
于是,a < b < c 的关系便得到了确立。 何艺铧 发表于 2021-12-11 17:01
能详细的吗
t = a;
a = b;
有两个只能装一个苹果的盒子,只能用一只手把两个苹果交换放在对方所在的盒子里,所以需要再要一个新盒子,把盒子A的苹果放在新盒子T里,然后把盒子B的苹果放在盒子A里,最后把暂存在新盒子T的苹果放在盒子B里,交换完成 何艺铧 发表于 2021-12-11 17:01
能详细的吗
t = a;
a = b;
实在不能理解的话列数字吧 这个就是经典的换杯算法啊,把a,b,t看成三个杯子,实现a和b杯子的交换。我们需要一个中间介质t。一开始a,b杯子里都有水,t是空的。我把a的水倒进t里,a杯空了。再把b杯的水倒进a里,b杯空了。最后把t杯的水倒进a里,实现了a与b杯子的交换。
页:
[1]