黑马程序员技术交流社区
标题:
基础运算符练习题(c语言)
[打印本页]
作者:
大龄产妇
时间:
2014-4-23 21:18
标题:
基础运算符练习题(c语言)
本帖最后由 大龄产妇 于 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 ,系统报错。求解答!(<---问题二)
作者:
한숨짓다
时间:
2014-4-23 22:07
本帖最后由 한숨짓다 于 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))参与双与运算,这里并不语句。我的理解是这样的,期待和你再次交流!
作者:
大龄产妇
时间:
2014-4-24 09:28
한숨짓다 发表于 2014-4-23 22:07
b = a++/(1-b*2,b没有赋值怎么能够参与运算了?另外b-- && ((a=0))并不是一句赋值语句。这里的a=0,这个没 ...
看样子还是语法错误了
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2