为什么结果是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);
} 你想交换三个数的值得话必须要有一个空的例如 两个数字交换值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);
} #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;
}
希望我的回答你能明白。 我明白了,谢谢! 可乐88989 发表于 2014-3-13 09:41 static/image/common/back.gif
#include
main()
{
这道题就是else后面不加花括号,所以else后只有a=c;
所以c=b;b=a;还要执行。
我才明白过来!
谢谢了! 不知道我回答你的问题,有没有贡献度? 路过看看= =! :lol:我本来以为我够菜了,居然还有新手!!!
页:
[1]