If x<y是假不成立 往下看 y>0为真执行z=0,不是应该不执行else语句嘛 那么输出z应该为0 若不执行else语句z=z+1 也应该是1 为什么答案等于2 请解释详细一些 是小白 谢谢 越详细越好!
2条回答 默认 最新
- qfl_sdu 2021-06-17 17:22关注
解析如下:
如有帮助,请采纳一下,谢谢。
main() { int x =2,y =-1,z =2; if(x<y) //x=2,y = -1,x<y 不成立,所以if的代码块不执行 if(y<0) z = 0; //else与其距离最近的if是一对,if(y<0) z=0;else z+=1;这些是一个完整的语句。 else z+=1; //这个完整的语句,作用范围在if(x<y)下面,因为x<y不成立,所以这个if else语句不执行 printf("%d \n",z); } //上面的代码等价于: main() { int x =2,y =-1,z =2; if(x<y) //x=2,y = -1,x<y 不成立,所以if的代码块不执行 { if(y<0) z = 0; //else与其距离最近的if是一对,if(y<0) z=0;else z+=1;这些是一个完整的语句。 else z+=1; //这个完整的语句,作用范围在if(x<y)下面,因为x<y不成立,所以这个if else语句不执行 } printf("%d \n",z); }
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报
悬赏问题
- ¥15 51寻迹小车定点寻迹
- ¥15 爬虫爬取网站的一些信息
- ¥15 关于vue2中methods使用call修改this指向的问题
- ¥15 idea自动补全键位冲突
- ¥15 请教一下写代码,代码好难
- ¥15 iis10中如何阻止别人网站重定向到我的网站
- ¥15 滑块验证码移动速度不一致问题
- ¥15 Utunbu中vscode下cern root工作台中写的程序root的头文件无法包含
- ¥15 麒麟V10桌面版SP1如何配置bonding
- ¥15 Marscode IDE 如何预览新建的 HTML 文件