免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12下一页
最近访问板块 发新帖
查看: 2099 | 回复: 16
打印 上一主题 下一主题

本人初学C,请指教! [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2006-10-17 16:18 |只看该作者 |倒序浏览
设m,n,a,b,c,d均为0,执行(m=a==b)||(m=c==d)后,m,n的值是多少


我的算法是:a==b值为真,赋1给m,
               
           c==d值为真,赋1给n,
                结果是m=1,n=1,但我和书上对答案时,正确答案是m=1,n=0,不知道错在哪里,请指教!

论坛徽章:
0
2 [报告]
发表于 2006-10-17 16:19 |只看该作者
n在那里

论坛徽章:
0
3 [报告]
发表于 2006-10-17 16:20 |只看该作者
|| 后不执行

论坛徽章:
0
4 [报告]
发表于 2006-10-17 16:25 |只看该作者
不好意思,后面的是n写错了
设m,n,a,b,c,d均为0,执行(m=a==b)||(n=c==d)后,m,n的值是多少


我的算法是:a==b值为真,赋1给m,
               
           c==d值为真,赋1给n,
                结果是m=1,n=1,但我和书上对答案时,正确答案是m=1,n=0,不知道错在哪里,请指教!

[ 本帖最后由 jons.zhang 于 2006-10-17 16:28 编辑 ]

论坛徽章:
0
5 [报告]
发表于 2006-10-17 16:28 |只看该作者
原帖由 skai 于 2006-10-17 16:20 发表
|| 后不执行

为什么||后不执行?

论坛徽章:
0
6 [报告]
发表于 2006-10-17 16:31 |只看该作者
到书上看看逻辑或的用法,这问题其实自己可以解决

论坛徽章:
0
7 [报告]
发表于 2006-10-17 16:34 |只看该作者
明白了,如果第一个表达式为真,不计算第二个表达式,我看的有点片面了,只想着M,N的值了,没想到整个表达式.谢谢回复!

[ 本帖最后由 jons.zhang 于 2006-10-17 16:36 编辑 ]

论坛徽章:
0
8 [报告]
发表于 2006-10-17 17:03 |只看该作者
还有一个题,
设有语句int a=3;,则执行了语句a+=a-=a*a;后,变量工的值是多少
先算a*a=9,a-=3-9=-6,a+=3+(-6)=-3我这种算法是不是有错误?

论坛徽章:
0
9 [报告]
发表于 2006-10-17 17:51 |只看该作者

回复 8楼 jons.zhang 的帖子

你的算法不对.正确应该是这样:
1.  a*a = 9
   那么 表达式 a-=a*a 的值是: -6   ,  表达式 a-=a*a 使 a 值变为 : -6 ;

2.  a+= a-=a*a => a+=-6  
   所以最后a 的值是 -6+-6 = -12.

论坛徽章:
0
10 [报告]
发表于 2006-10-17 18:28 |只看该作者
原帖由 老蔡 于 2006-10-17 17:51 发表
你的算法不对.正确应该是这样:
1.  a*a = 9
   那么 表达式 a-=a*a 的值是: -6   ,  表达式 a-=a*a 使 a 值变为 : -6 ;

2.  a+= a-=a*a => a+=-6  
   所以最后a 的值是 -6+-6 = -12.


谢谢指点,我的a值没有变,一直采用初值了,应把第二步的值赋给a,谢谢回复!可以加你QQ或MSN吗?
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP