|
作者: lover_521 [lover_521] 论坛用户 | 登录 |
main() {int a=1,b=0; while(a<9) b+=a/++a; printf("%d,",b); } 结果是多少?没一步的结果.第一步是1还是1/2为什么.谢谢大家了。帮帮忙. |
地主 发表时间: 11/14 13:59 |
回复: lwei889 [lwei889] 论坛用户 | 登录 |
main() {int a=1,b=0; while(a<9) { b+=a/++a; printf("b=%d\n",b); } } 把这个程序少作修改,你就能清楚的看到每一步的结果 至于第一步为什么等于等价于下面这个程序 main() {int a=1,b=0; while(a<9) { a++; //也可写成++a 区别是a++,先使用a的值,在使a加一 ++a则相反 b+=a/a; printf("b=%d\n",b); } } 你要是学c语言的话,书上肯定有介绍的,建议你认真的看书,在一个就是写易懂的程序,提高程序的可读性! |
B1层 发表时间: 11/14 14:37 |
回复: cyshaoping [cyshaoping] 论坛用户 | 登录 |
结果是多少,你不会用编译器编译吗? |
B2层 发表时间: 11/14 16:49 |
回复: ziaichen [ziaichen] 论坛用户 | 登录 |
你还是好好看看书吧 最好你能从基础看起 认真一点 |
B3层 发表时间: 11/14 17:03 |
回复: gentleman [gentleman] 论坛用户 | 登录 |
是不是1/2啊!!! ++a先加一赋值,等于2, 是不是这样啊!! 不懂!!! |
B4层 发表时间: 11/15 09:37 |
回复: zhoen889 [zhoen889] 论坛用户 | 登录 |
如果不加括号,结果是:8 加后是:1 2 3 4 5 6 7 8 [此贴被 zhoen889(zhoen889) 在 11月28日20时23分 编辑过] |
B5层 发表时间: 11/28 17:08 |
回复: yzl800527 [yzl800527] 论坛用户 | 登录 |
什么是基础的呀???我是个小小小的菜鸟~!!!! 告诉我好吗?多多多多谢了。 |
B6层 发表时间: 11/30 16:33 |
回复: sungod [sungod] 论坛用户 | 登录 |
结果为0 因为a/++a=0 |
B7层 发表时间: 11/30 16:52 |
回复: rainnet [rainnet] 论坛用户 | 登录 |
结果应该等于0吧 |
B8层 发表时间: 12/01 20:03 |
回复: xiao99 [xiao99] 论坛用户 | 登录 |
结果是:8, 你是个笨蛋,你记好了! |
B9层 发表时间: 12/02 21:28 |
回复: whq1015 [whq1015] 论坛用户 | 登录 |
前面没加头文件 结果应该是0 |
B10层 发表时间: 12/03 14:02 |
回复: zhoen889 [zhoen889] 论坛用户 | 登录 |
在tc中用printf输出函数不用写头文件!! |
B11层 发表时间: 12/04 10:34 |
回复: windll [windll] 论坛用户 | 登录 |
当然是8拉 a++了 a的值每一次都变了嘛 |
B12层 发表时间: 12/04 23:07 |
回复: ziaichen [ziaichen] 论坛用户 | 登录 |
我认为所谓的基础就是:你要先清楚c语言的一些基本表达式、语句含义(特别是赋值语句),基本运算(譬如位运算等),以及在编写程序中因格式的不同而所制定的规则等,至少要具有这样的基础,才能看懂一些基本的c程序。 [此贴被 ziaichen(ziaichen) 在 12月05日08时54分 编辑过] |
B13层 发表时间: 12/05 08:38 |
回复: ziaichen [ziaichen] 论坛用户 | 登录 |
可以看看这个网站,里面使关于c编程的一些基本介绍 http://paul.rutgers.edu/~junl/learning/TC/ [此贴被 ziaichen(ziaichen) 在 12月05日09时09分 编辑过] |
B14层 发表时间: 12/05 09:24 |
回复: shen [shen] 论坛用户 | 登录 |
main(){ int a=0,b=0; printf("%d",++a); /*出来的结果为1*/ printf("%d",b++); /*出来的结果为0*/ } ++a是先加后用,b++是先用后加 最后的结果都是1 |
B15层 发表时间: 12/05 14:28 |
回复: beautyproo [beautyproo] 论坛用户 | 登录 |
当然是1了,不论是先加后加,自己除自己都是1啊 |
B16层 发表时间: 12/05 16:10 |
回复: zhengzheng [zhengzheng] 论坛用户 | 登录 |
呵呵,是0?是1?是8?还是‘’‘’‘ |
B17层 发表时间: 12/05 20:45 |
回复: zhoen889 [zhoen889] 论坛用户 | 登录 |
上机运行就知道了,何必呢!! |
B18层 发表时间: 12/06 19:32 |
回复: xiaofu [fuxianfu] 论坛用户 | 登录 |
只要知道单目运算符和数据运算符的优先顺序就可以了。 切! |
B19层 发表时间: 12/09 03:39 |
回复: kenter1643 [kenter1643] 论坛用户 | 登录 |
搞清楚++i 和i++的关系吧 |
B20层 发表时间: 12/09 14:59 |
回复: honyry [honyry] 论坛用户 | 登录 |
我认为应该是8 第一步是得1不是1/2 如果此处!=1 此处=1/2那么由于int变量相当于求模就会=0 我没有上机啊 也许我分析的不对 有不对的请指出哦 谢谢 |
B21层 发表时间: 12/09 15:02 |
回复: kenter1643 [kenter1643] 论坛用户 | 登录 |
第一步是a/++a嘛!不是等于1/2吗??是C语言啊!!a/++a才是1嘛. |
B22层 发表时间: 12/09 15:38 |
回复: honyry [honyry] 论坛用户 | 登录 |
楼上的你说的是什么意思啊?a/++a你说是1还是1/2? |
B23层 发表时间: 12/09 15:48 |
回复: kenter1643 [kenter1643] 论坛用户 | 登录 |
是1/2吧!个人理解 |
B24层 发表时间: 12/09 16:03 |
回复: honyry [honyry] 论坛用户 | 登录 |
不对 应该是1 没有1/2的可能 如果是按逻辑是1/2 因为 b是int型变量 也会对0。5取模[0。5]=0 就应该是0了 但根据++的用法看就应该是1 不信上机! |
B25层 发表时间: 12/09 16:21 |
回复: zoom2002 [zoom2002] 论坛用户 | 登录 |
当然1/2 |
B26层 发表时间: 12/09 20:39 |
回复: peter [peter] 论坛用户 | 登录 |
自己上机算一下就知了 结果应该是 0 (口算的)原因:那是 int 型 还有 ++ 的优先级是比 / 要高,面结合方向是自右至左 [此贴被 peter(peter) 在 06月11日16时05分 编辑过] |
B27层 发表时间: 04-05-29 20:36 |
回复: Anubis [shajia2646] 论坛用户 | 登录 |
结果为8,不信的话你上机试试,我用的是TC2.0 [此贴被 Anubis(shajia2646) 在 05月31日17时38分 编辑过] |
B28层 发表时间: 04-05-31 17:37 |
回复: Titians [flyfalcon] | 登录 |
a/a++ a已经自增1了 也就相当于 a+=1 a/a 这样的话,应该明白是1,而不是1/2了吧 因为这是先进行++ 运算, a++ , a的值已经增加1了, 分子也是a那么在原来的基础不是也 增1了么。 |
B29层 发表时间: 04-06-09 11:24 |
回复: cfirer [cfirer] 论坛用户 | 登录 |
这个结果是 1 2 3 4 5 6 7 8 我已经试了 说是8的 是因为while(a<9)后面没有{} |
B30层 发表时间: 04-06-09 13:16 |
回复: cfirer [cfirer] 论坛用户 | 登录 |
看错看错 楼主也没while后面也没加{} main() {int a=1,b=0; while(a<9) b+=a/++a; printf("%d,",b); } 这个结果是8 main() {int a=1,b=0; while(a<9) {b+=a/++a; printf("%d,",b);} } 这个结果是1,2,3,4,5,6,7,8, |
B31层 发表时间: 04-06-09 13:19 |
回复: cfirer [cfirer] 论坛用户 | 登录 |
楼上同志是正确答案 大家不要灌水了嘎嘎 |
B32层 发表时间: 04-06-09 13:20 |
回复: windflower [windflower] 论坛用户 | 登录 |
但是, 我编译了下,结果也是8 |
B33层 发表时间: 04-06-10 22:23 |
回复: lgf [lgf] 论坛用户 | 登录 |
~~~就是 |
B34层 发表时间: 04-06-12 12:05 |
回复: yndx301com [yndx301com] 论坛用户 | 登录 |
a++;++a;这种最好在C中少用。 a++:是把a的值赋了再运算。而++a是先算后赋值。 这种写程序易出问题,不方便读写/修改。最好采用三者关系的变量来完成. |
B35层 发表时间: 04-06-13 14:05 |
回复: windflower [windflower] 论坛用户 | 登录 |
楼上,你恰恰说反了。 |
B36层 发表时间: 04-06-13 22:20 |
回复: xuepeng [xuepeng] 论坛用户 | 登录 |
应该是1吧 上机一试就知道了 这是很基础的程序啊,多看看书吧。搞清楚运算符的优先级、结合方向 |
B37层 发表时间: 04-06-14 08:52 |
|
20CN网络安全小组版权所有
Copyright © 2000-2010 20CN Security Group. All Rights Reserved.
论坛程序编写:NetDemon
粤ICP备05087286号