int i=-1,j=2,k; do{ k=++i&&--j;i++; }do whilee(k);printf("%d,%d",i,j) 请问为什么输出1,2?

有以下程序 main() { int i=1,j=2,k=3; if(i++==1&&(++j==_百度知道
有以下程序 main() { int i=1,j=2,k=3; if(i++==1&&(++j==
有以下程序main(){int i=1,j=2,k=3;if(i++==1&&(++j==憨亥封酵莩寂凤檄脯漏3‖k++==3))printf(“%d %d %d\n”,i,j,k);}程序输出的结果是2 3 3为什么,能详细分析一下嘛,谢谢了。
提问者采纳
给不给好评
你能好好分析让我看懂了我自然给好评的
++ --原理你应该清楚我就不解释了,这题的疑点就在++j==3||k++==3打开你的教科书查看逻辑那块当出现||如果第一个判断式为真就不在运行下一个判断
#include&stdio.h&int main(){int i=2;int c = 0,b=0;if(i==2||++c){}if(i==1||++b){}printf(&c=%d
b=%d&,c,b);}
你说如果第一个判断式为真就不在运行下一个判断那第一个if为真的话c=1下面那个if就不用运行了b还是等于零呐
定义是int i=2,所以i==1就是错的
想要解决更多疑难杂症,好评一下额
那(++j==3‖k++==3)是对的还是错的啊
那k应该是4才对啊
定义是int j=2,++j==3也就是3==3为真,它为真了||这后面就不运算了
所以if(++j==3||k++==3)只运算了++j==3;如果if(++j==4||k++==3)此时k=4
好评呐谢谢
好吧(∩_∩)谢谢思密达!
不客气O(∩_∩)O
提问者评价
太给力了,你的回答完美地解决了我的问题,非常感谢!
其他类似问题
为您推荐:
其他1条回答
i++后 i的值为2,||憨亥封酵莩寂凤檄脯漏 是一个 或 条件,只要满足其中之一就可以,双等号已经给J
赋值为3了,所以输出值为2 3 3
那k++不是应该k等于4了嘛
等待您来回答
下载知道APP
随时随地咨询
出门在外也不愁main() { int i=1,j=2,k=3; if(i++==1&&(++j==3||k++==3)) printf(&%d %d %d\n&,i,j,k); } 求过程_百度知道
main() { int i=1,j=2,k=3; if(i++==1&&(++j==3||k++==3)) printf(&%d %d %d\n&,i,j,k); } 求过程
提问者采纳
k=3; if(i++==1&&(++j==3||k++==3)) printf(&quot,j=2,i,j,k);n&quotmain() { int i=1;; }首先 i++==1&&(++j==3||k++==3) 是一个逻辑表达式i++==1&&(++j==3||k++==3)
分为两部分i++==1
(++j==3||k++==3) 他们的关系是 并且的关系 所以 两部分都会被执行i++==1是先 判断i是否等于1 (因为++在后面) 此时i=1;%d %d %d&#92
提问者评价
来自团队:
其他类似问题
为您推荐:
printf的相关知识
其他4条回答
求什么过程?这段输出值是:234
i++和 k++先做判断是否相等,然后再做++运算++j 先做++运算,在判断值是否相等也就是 (i==1) i++j++
(j==3)(k==3) k++
133 ++j为3不用算后面k不变 i++先使用i再自增故成立所以继续输出
printf(&%d %d %d\n&,i,j,k); // 所以结果为:2 3 4
等待您来回答
下载知道APP
随时随地咨询
出门在外也不愁解析下列程序运算过程main(){ int i=1,j=2,k=3; if(i++==j)&&k--==j) printf("%d,%d,%d",i++,j,k);else printf("%d,%d,%d",++i,++j,k--);}
数字爱茜茜1622
结果是 :3 3 3 首先i++=j 不成立.所以执行else.此时i的值为2了.printf("%d,%d,%d",++i,++j,k--);的结果就是3 3 3 一定要区分好++i 和i++++i是先使i的值加1,然后再使用.i++是先使用i的值,然后再把值加1
饿为什么输出K--的时候输出的是3?
k--先用k的值3。。。再把它的值加1
如果写成--k的话。。。结果就是4
为您推荐:
其他类似问题
扫描下载二维码以下试题来自:
单项选择题设int i=2,j=1,k=3,则表达式i&&(i+j)&k|i+j的值是_______。A.0B.2C.1D.3
为您推荐的考试题库
你可能感兴趣的试题
1A.67,DB.B,CC.C,DD.不确定的值2A.DoubleB.floatC.integerD.Char3A.任何对象都必须有继承性B.对象是属性和方法的封装体C.对象间的通讯靠消息传递D.操作是对象的动态性属性4A.算法程序的长度B.算法程序中的指令条数C.算法程序所占的存储空间D.算法执行过程中所需要的存储空间5A.1B.2C.4D.5
热门相关试卷
最新相关试卷main() { int i=1,j=2,k=3; if(i++==1&&(++j==3||k++==3)) printf("%d %d %d\n",i,j,k);解析
if(i++==1&&(++j==3||k++==3)) 先看 i ++== 1,因为是++在后面,所以语句执行完才i才会变成2,所以i++ == 1,true,.后面++j==3||k++==3,++j,++ 在前面,所以执行的时候j就等于3了,而k++ ==3 是|| ,只要++j == 3 成立,他就立即返回了ture了,所以k++ == 3不会执行,所以k 欲绝结束后也是3,所以printf 的结果是 2,3,3
为您推荐:
其他类似问题
扫描下载二维码

我要回帖

更多关于 do while 的文章

 

随机推荐