A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 大龄产妇 中级黑马   /  2014-4-23 21:18  /  1374 人查看  /  2 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 大龄产妇 于 2014-4-28 16:05 编辑

1   /*
2   刚刚看完运算符的一些优先级的视频,自己给自己出了一道题检测学习效果。
3   要用到+,-,*,/,%,&&,||,!,++,--几乎是全部的基础运算符。
4   结果给自己弄蒙了,答案有,而且没有报错,我反复验证很多遍,应该是没有语法问题
5   */
6   #include <stdio.h>
7   int main()
8   {
9    int a,b,c;
10    a = !1;
11    b = a++/(1-b*2);
12    c = a--,b-- && ((a<=1) && (b++>=0));
13    int answer = a + b + c;
14    printf("answer = %d\n",answer);
15    return 0;
16 }
//答案是0,当第12行 && 换成 || 时答案是1.
//求大家集思广益,帮我解答,最好列上详细运算方式。(<---问题一)
//当把11行中右侧的b换成a ,系统报错。求解答!(<---问题二)

评分

参与人数 1技术分 +1 收起 理由
jing迪 + 1

查看全部评分

2 个回复

倒序浏览
本帖最后由 한숨짓다 于 2014-4-23 22:31 编辑

b = a++/(1-b*2,b没有赋值怎么能够参与运算了?另外b-- && ((a<=1) && (b++>=0))并不是一句赋值语句。这里的a=0,这个没有什么好说的;你单独从     b = a++/(1-b*2)后面打印出b可以打出b=0;b-- && ((a<=1) && (b++>=0)),这句话是b--和(a<=1)&&(b++>=0))参与双与运算,这里并不语句。我的理解是这样的,期待和你再次交流!

评分

参与人数 1技术分 +1 收起 理由
jing迪 + 1

查看全部评分

回复 使用道具 举报
한숨짓다 发表于 2014-4-23 22:07
b = a++/(1-b*2,b没有赋值怎么能够参与运算了?另外b-- && ((a=0))并不是一句赋值语句。这里的a=0,这个没 ...

看样子还是语法错误了
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马