为了账号安全,请及时绑定邮箱和手机立即绑定

解析说两个If都不满足为什么?

/ 猿问

解析说两个If都不满足为什么?

街角疯 2016-09-24 14:56:24
int a=3,b=5, c=7;
if(a>b)a=b;c=a;
if(c!=a)c=b;;
printf("%d,%d,%d\n",a,b,c);


查看完整描述

2 回答

已采纳
?
慕粉3491951

第一个if 3>5肯定不成立,

第二个if前面执行了c=a,所以也不成立

if后面没加{}只有紧跟着的第一条语句是满足条件时执行的

查看完整回答
反对 回复 2016-09-24
?
世安开明

今后要树立编写出高质量代码的理念。

int a =3, b = 5, c = 7;

if( a > b ){       //if条件默认情况下之作用于一条语句。若想让if条件作用多条语句,就把多条语句用大括号括到if的条件下。

a = b;

}


c = a;    //这条语句没有在第一个语句里,这条语句在这个程序里,是一定会执行的。它一执行就是将a里的3,赋给了c。

            //这样就意味着从此开始c里的值也等于3了,此时c里的值变了。a里的值还是3。就是"c == a"(c和a相等)了。


if( c != a){  //而这里的if里的条件是“c != a”(c不等于a),由上一条语句可知“c != a”为假,所这个if条件也不满足。

c = b;

}

查看完整回答
反对 回复 2016-09-26

添加回答

回复

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信