|
![]() | 作者: jfyygymtdh [jfyygymtdh]
![]() |
登录 |
求1~100间奇数和. main() { int a,b; for(a=1;a<=100;++a,++a) b+=a; printf("b=%d\n",b); } 为什么输出的结果是:101 能指明吗? 原标题:TC2.0的问题 [此贴被 286(unique) 在 12月22日14时27分 编辑过] [此贴被 jfyygymtdh(jfyygymtdh) 在 12月24日21时59分 编辑过] |
地主 发表时间: 03-12-22 12:24 |
![]() | 回复: lwei889 [lwei889] ![]() |
登录 |
你在使用b之前,初始化变量了吗? 既然是求奇数的和,不需要两次自加了,一次直接加2不就行了 b=0; for(a=1;a<=100;a+=2) b+=a; printf("b=%d",b); |
B1层 发表时间: 03-12-22 12:50 |
![]() | 回复: moley [moley] ![]() |
登录 |
路过的,顶! |
B2层 发表时间: 03-12-22 21:20 |
![]() | 回复: jfyygymtdh [jfyygymtdh] ![]() |
登录 |
我把B设为0 但是也不行啊. 值不对啊. 我按你那样做. 输出的值根本就不对. |
B3层 发表时间: 03-12-22 21:24 |
![]() | 回复: ceo_8008 [ceo_8008] ![]() |
登录 |
不然你会输出什么? |
B4层 发表时间: 03-12-24 12:43 |
![]() | 回复: jfyygymtdh [jfyygymtdh] ![]() |
登录 |
我输出的还是101啊 这是为什么啊? 对我的TC不好吗? [此贴被 jfyygymtdh(jfyygymtdh) 在 12月24日22时00分 编辑过] |
B5层 发表时间: 03-12-24 20:15 |
![]() | 回复: kert_t8 [kert_t8] ![]() |
登录 |
dor 应该是 for 吧 for循环怎么能直接加;呢? 你的b+=a;根本就之运行过一次 明白? |
B6层 发表时间: 03-12-24 21:22 |
![]() | 回复: windflower [windflower] ![]() |
登录 |
这样的问题不应提出来,真的,你自己可以调试,我不选择100,选择10,然后去想想为什么结果会不对叱?可以看得出,你目前的思路不宽,是不是谈恋爱了呢? |
B7层 发表时间: 03-12-24 21:53 |
![]() | 回复: kert_t8 [kert_t8] ![]() |
登录 |
![]() 楼上的,失恋了吧? 我怎么看怎么觉得你说的话有喜剧效果 |
B8层 发表时间: 03-12-24 22:01 |
![]() | 回复: jfyygymtdh [jfyygymtdh] ![]() |
登录 |
没有啊,我刚失恋。 为什么FOR只运行了一次呢? for不是循环结构吗? 为什么你说我的那个程序只能运行一次呢? 能不能说明白一点啊,我刚开始学习TC有很多不明白之处。 我问老师,他们也不知道。 请楼上的朋友说明白一点好不好啊。 |
B9层 发表时间: 03-12-24 22:03 |
![]() | 回复: kert_t8 [kert_t8] ![]() |
登录 |
c语言里面“;”是什么意思? 你如果在for语句后面直接加“;”,是不是就相当于for循环的循环体是一条空语句? |
B10层 发表时间: 03-12-24 22:08 |
![]() | 回复: jfyygymtdh [jfyygymtdh] ![]() |
登录 |
那是我误打出来的。 我在TC中打的没有: 我没有打:但是值还是101啊。 这是什么原因啊? |
B11层 发表时间: 03-12-24 22:19 |
![]() | 回复: kert_t8 [kert_t8] ![]() |
登录 |
分号 |
B12层 发表时间: 03-12-24 22:26 |
![]() | 回复: jfyygymtdh [jfyygymtdh] ![]() |
登录 |
不是啊我在FOR语句后面什么都没有加啊。 但是值还是101 我听有些朋友说是TC2。0这个版本不好。但是我有的程序编的答安很对。 可这次的值就是不对。 |
B13层 发表时间: 03-12-24 22:37 |
![]() | 回复: ysfilone [ysfilone] ![]() |
登录 |
程序因该没有问题吧 是你的编辑器的 问题 |
B14层 发表时间: 03-12-25 07:04 |
![]() | 回复: sweetblood [sweetblood] ![]() |
登录 |
for循环了100次,a变为101了,b+=a,因为你没给b赋初值,所以系统默认为它的值为0,所以b就是101了。 |
B15层 发表时间: 03-12-25 12:07 |
![]() | 回复: jfyygymtdh [jfyygymtdh] ![]() |
登录 |
兄弟不是那个原因吧.我给B赋值了. 我想会是我的工具有问题. 不知道哪位朋友有正版的软件. 传到网上给我用用啊. 谢谢. http://cyannqi.con.cn |
B16层 发表时间: 03-12-25 12:38 |
![]() | 回复: 286 [unique] ![]() |
登录 |
这问题兄弟们还没搞定吗? main() { int a,b=0; for(a=1;a<=100;++a,++a) b+=a; printf("b=%d\n",b); } --------------------------------- b=2500 |
B17层 发表时间: 03-12-25 13:52 |
![]() | 回复: jfyygymtdh [jfyygymtdh] ![]() |
登录 |
我与你做的一样可输出的值还是101 是不是工具出错了? |
B18层 发表时间: 03-12-26 20:47 |
![]() | 回复: realpope [realpope] ![]() |
登录 |
肯定是工具问题 这么简单的程序 不可能出错的! |
B19层 发表时间: 03-12-26 21:35 |
![]() | 回复: mgcyc2001 [mgcyc2001] ![]() |
登录 |
main() { int a; a=(1+99)*100/4 printf("a=%d\n",a); } |
B20层 发表时间: 03-12-27 20:28 |
![]() | 回复: leonshoh [leonshoh] ![]() |
登录 |
#include <stdio.h> int main() { int sum=0; int i; for(i=1;i<100;i+=2) sum+=i; printf("sum=%d\n",sum); return 0; } |
B21层 发表时间: 03-12-27 21:05 |
![]() | 回复: kert_t8 [kert_t8] ![]() |
登录 |
是不是编译器的问题你把源程序复制粘贴到另外一台机器上一试就知道了,不至于你们学校那么多台机器的编译器都出问题吧?还用得着在这儿说这么多吗?还有,你是不是清楚的记得源代码中for循环语句后面没有加分号,因为c++程序里面的分号很多,很容易就看走眼了。而且如果加了分号的话,输出结果就正好是101,也就是你现在的那个错误值,所以说应该好生检查一下 |
B22层 发表时间: 04-01-02 18:45 |
![]() | 回复: jfyygymtdh [jfyygymtdh] ![]() |
登录 |
哦,谢谢楼上的兄弟. |
B23层 发表时间: 04-01-05 21:12 |
|
20CN网络安全小组版权所有
Copyright © 2000-2010 20CN Security Group. All Rights Reserved.
论坛程序编写:NetDemon
粤ICP备05087286号