超级飞侠3:C语言的问题,会的答。

来源:百度文库 编辑:杭州交通信息网 时间:2024/04/28 11:52:24
看看下面这个程序

#include<stdio.h>
void main()
{
float a,b,t;
scanf("%f,%f",&a,&b);
if(a>b)
{
t=a;
a=b;
b=t;
}
printf("%5.2f,%5.2f\n",a,b);
}

这个程序中的
t=a;
a=b;
b=t;
怎么理解啊。几个等号就能表明他们的大小吗?

那不是等号,是赋值符号,在C语言中的等号是==。
t=a;
a=b;
b=t;
以上三句的目的是交换a与b的值。
打个比方。有a 和b 两杯水,空杯t。现将a杯的水倒入t杯,a杯空了,再将b 杯的水倒入a杯;此时b杯空了,再将t杯的水倒入b杯。这样,通过一个空杯t,就交换了a 杯与b 杯的水。

这段程序的意思是将输入的ab调个位置

如输入a=20 b=10

t=a t=20
a=b a=10
b=t b=20
结果 a=10 b=20

t=a; //把a的值传给t
a=b; //把b的值传给a
b=t; //把t的值传给b
实现了利用中间变量t,交换a,b的值

不是,关键问题在于if语句,从if开始的意思是:如果a大于b,那么把a的值给t,此时t就是a和b中的大的一个,然后再把b的值给a,t的值再给b,这样就实现了如果a>b,就交换a与b的值的功能。

如果 a>b 则交换 a ,b 的 值;
如果 a<b 则 a,b不交换,即不作处理 。
总之 是 保证 a〈b
因此 pintf输出的两个数中前面的一个一定小于后面的那个。

首先在if从句中判断a是不是大于b,如果大于的话就进行a和b的交换,利用中间变量t,t=a就是把a的值先放在t中,进行保护a的值的操作,为下一步把b的值给a做准备,a=b呢,就是把b的值赋给了a,b=t呢,就是把a的值给了b
这三句话是为了实现a和b的值的交换,把a,b中的较小者给a