回 帖 发 新 帖 刷新版面

主题:[讨论]求高手解答:有些地方我很不明白,都是些简单的地方,但都比较疑惑

对于if语句这里,我有一点不明白,如if(表达式)语句,按书上结合我的理解,那就是如果表达式成立,则运行语句。可是书上有这样一个程序我很不理解。
程序如下: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);
            }
这是求输入两个实数,按代数值有小到大的顺序输出的那个例子,可是我就很不明白,不是像这种if(表达式)语句的形式,都是说如果表达式成立才运行的吗?那如果我先输入的值a比b小,那不是if后面的语句就不被执行了,那我觉得这个程序就是错的。可事实上是我的理解有问题,可我还是很想不通,请高手们帮帮忙。帮忙讲解一下,谢谢

回复列表 (共4个回复)

沙发


程序是对的,当a小于b直接输出ab不执行语句,反之执行语句,a和b交换位置在输出。

板凳

好好想想程序的功能:
    if语句在a>b时方能执行,用于把a,b交换位置(用变量t)这之后a<b。
    如果输入的值a比b小 ,就不需要排序这时直接输出a,b的值,即可。

3 楼

楼主看看程序;if(){...}的范围,

4 楼

谢谢大家,谢谢,现在我已经明白了。谢谢大家的指导

我来回复

您尚未登录,请登录后再回复。点此登录或注册