帮我解释一个C语言程序

#include<stdio.h>intmain(){inta=1,b=2,c=3,d=0;if(a==1&&b++==2)if(b!=2||c--!=3)printf(... # include<stdio.h>
int main()
{
int a=1,b=2,c=3,d=0;
if(a==1&&b++==2)
if(b!=2||c--!=3)
printf("%d,%d,%d\n",a,b,c);

else
printf("%d,%d,%d\n",a,b,c);
}
程序运行后的输出结果是 1,3,3
我认为是1,3,2
# include<stdio.h>
int main()
{
int a=1,b=2,c=3,d=0;
if(a==1&&b++==2)
if(b!=2&&c--!=3)
printf("%d,%d,%d\n",a,b,c);

else
printf("%d,%d,%d\n",a,b,c);
}
程序运行后的输出结果是 1,3,2
我认为是1,3,3
小弟不懂,求甚解!!!望大虾给予详细!!!必重谢!!!
展开
 我来答
匿名用户
2010-08-11
展开全部
第一个程序里面,只要理解了
if(a==1&&b++==2)
if(b!=2||c--!=3)
这2句就知道了
首先,if(a==1&&b++==2),在这里b++==2先判断b==2,然后在b=b+1,所以这里的2个判断都为真,也就会执行if(b!=2||c--!=3),
而在执行这个if语句时,用的是或连接,也就是说当b!=2成立时,c--!=3是不执行的,所以c还是为3
最后输出的结果就是1,3,3了

而第二个程序里,也是理解这句就懂了
if(b!=2&&c--!=3)
在这里b!=2成立,所以就还要判断 c--!=3是否成立,而这里是先判断c!=3然后再使c--;也就得到了c=2,而它是不成立的,
最后输出结果就为1,3,2了
墨白null
2010-08-11 · TA获得超过150个赞
知道答主
回答量:42
采纳率:0%
帮助的人:24.6万
展开全部
if(a==1&&b++==2)为真,但b++之后b=3, 在if(b!=2&&c--!=3),b!=2对,开始c=3,c——之后c=2,但在判断中c=3,判断完之后C=2,所以if(b!=2&&c--!=3)为假,执行else,答案 1,3,2
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
a312292061
2010-08-14 · TA获得超过2095个赞
知道答主
回答量:37
采纳率:0%
帮助的人:0
展开全部
很简单
原因是这样的
在C语言中,如果出现(表达式1)||(表达式2)
那么机器会自左向右执行,先执行表达式1,如果表达式1为【真】的话,那么计算机是不会执行表达式2的,因为无论表达式2是真或是假,其最终结果都是真。
这就是为什么在你写的第一个程序中没有执行c--!=3了

同理,如果出现(表达式1)&&(表达式2)时,如果表达式1为【假】的话,计算机也是不会执行表达式2的,而当表达式1为真的时候,才执行表达式2。而你第二个程序中
b!=2为真,所以计算机当然要再对C--!=3进行判断了。
这就是为什么你的第二个程序执行了C--了。

说到这里你应该懂了吧
PS:楼主这样的钻研精神很好,特别是对于编程,希望楼主继续保持哦~~~
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
彩笔笔墨墨香8
2010-08-14
知道答主
回答量:3
采纳率:0%
帮助的人:0
展开全部
是 133 没错;
第一次 a==1 true b++=2 true (此时 b自加后等于3)
if(3!=2||) c语言规定 “||”符号判断 如果第一个是真 则不进行后面运算 c--不执行
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友6519ac7f8
2010-08-15
知道答主
回答量:14
采纳率:0%
帮助的人:4.3万
展开全部
很简单,你错误是
1.if(b!=2||c--!=3)执行这个语句时,发现b!=2为真时,因是或运算,后面的语句便不需判断,因此是1 3 3;
2.if(b!=2&&c--!=3)执行这个语句时,发现b!=2为真时,因是与运算,后面的语句仍需判断,因此是1 3 2
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
xiaom_jie
2010-08-18 · 超过12用户采纳过TA的回答
知道答主
回答量:43
采纳率:100%
帮助的人:34.2万
展开全部
因为if(b!=2||c--!=3)是或语句,前面b!=2已经满足成立,不执行c--!=3的判断,如果将b!=2改为b!=3,则结果就是1,3,2
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(8)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式