main(){inti=1,j=2,k=3;if(i++==1&&(++j==3||k++==3))printf(“%d %d %d\n”,i,j,k);

答案,最好告知一下原因,谢谢大家!... 答案,最好告知一下原因,谢谢大家! 展开
 我来答
淮以WZA
2014-06-25 · 超过63用户采纳过TA的回答
知道答主
回答量:113
采纳率:50%
帮助的人:126万
展开全部
答案:2 3 3 #include <stdio.h> void main() { int i=1,j=2,k=3; if( i++==1 &&( ++j==3 || k++==3 )) printf("%d %d %d\n",i,j,k); } if语句里面的判断为两大部分: 1、i++ == 1; 2、++j == 3 || k++ == 3; i的初始值为1,i++是先判断i==1,然后再i=i+1,所以这部分结果为true; j的初始值为2,++j是先执行j=j+1=3,然后再判断j==3,第2部分的前半部分也是true的,根据“短路”(物理电路上的名词)原则,这部分整体的结果也是为true的 两个真值相与的结果也为正,所以if条件是成立的,然后执行输出语句: i=2; j=3; k=3; //k++没有执行到
17033缺操
推荐于2018-02-11 · TA获得超过137个赞
知道小有建树答主
回答量:149
采纳率:83%
帮助的人:67.9万
展开全部
#include <iostream> int main() { int i = 1,j = 2,k = 3; if(i++ == 1 && //先判断 i == 1 再运算 i = i + 1 (++j==3 || //先运算 j = j + 1 再判断 j == 3 k++==3)) //先判断 k == 3 再运算 k = k + 1 printf("%d %d %d\n", i, j, k); return 0; } //运算符优先级问题,请注意代码中的解释,可以查下相关资料 //你给出的代码里的符号为中文的符号如;() //中文符号编译是不会通过的,应该使用英文符号,如 ; () //最后答案输出 2 3 3
麻烦采纳,谢谢!
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式