雪域王国 发表于 2014-3-13 08:41:08

为什么结果是8,8,7?

#include <stdio.h>
main()
{
        int a = 9,b = 8,c = 7;
        if(a > c)
        {
                a = b;
                b = c;
                c = a;
        }
        else

                a = c;
                c = b;
                b = a;

        printf("%d,%d,%d\n",a,b,c);
}

蒲公英花开 发表于 2014-3-13 08:59:54

你想交换三个数的值得话必须要有一个空的例如 两个数字交换值a=1,b=2   交换两个数值必须先定义一个空的例如int temp   交换函数就是   temp=a;a=b;b=temp;      

#include <stdio.h>
main()
{
      int a = 9,b = 8,c = 7;                  inttemp;
      if(a > c)                                       
      {
                a = b;                                        temp=a;a=b;b=c;c=temp;
                b = c;               
                c = a;
      }
      else

                a = c;
                c = b;
                b = a;

      printf("%d,%d,%d\n",a,b,c);               
}

可乐88989 发表于 2014-3-13 09:41:49

#include <stdio.h>
main()
{
      int a = 9,b = 8,c = 7;
      if(a > c)                              //a==9,c==7符合条件。
      {
                a = b;                         //因为你用b的值把a的值个覆盖了,所以这里a==8;
                b = c;                         //这里你又用c的值把b的值个覆盖了,所以b==7 ;
                c = a;                         //这里你又用a==8的值把c的值个覆盖了,所以这里c==8;
      }
      else
                   //这里else后面要加花括号!
                a = c;                           //这里你又用c==8的值把啊a的值个覆盖了,所以这里a==8;
                c = b;                        //这里你又用上面b==7的值把从c的值个覆盖了,所以这里c==7;
                b = a;                         //这里你又用上面啊a==8的值把从b的值个覆盖了,所以这里b==8;
        //这里你也不加花括号,如果你加了花括号答案就是上面if里面的a==8,b==7,c==8了
      printf("%d,%d,%d\n",a,b,c);   //你上面没有加花括号,所以执行了else里的a==8,b==8,c==7;
}

希望我的回答你能明白。

雪域王国 发表于 2014-3-13 10:04:25

我明白了,谢谢!

雪域王国 发表于 2014-3-13 10:18:50

可乐88989 发表于 2014-3-13 09:41 static/image/common/back.gif
#include
main()
{


这道题就是else后面不加花括号,所以else后只有a=c;
所以c=b;b=a;还要执行。
我才明白过来!
谢谢了!

可乐88989 发表于 2014-3-13 10:32:36

不知道我回答你的问题,有没有贡献度?

未闻丶花名 发表于 2014-3-14 09:58:55

路过看看= =!

最聪明的傻子 发表于 2014-3-14 10:22:31

:lol:我本来以为我够菜了,居然还有新手!!!
页: [1]
查看完整版本: 为什么结果是8,8,7?