请教各位几个小问题,有点晕了不太理解

sinat_34615052 2016-04-12 11:24:27
加精
这个程序的意图是这样的,就是说共有200根线条,每根线条上面有一些点,第一条线上面有1个点,第二条线上面有2个点........以此类推,一直到第200根线条上有200个点,我们需要求的是这200根线条上的点的总和。这些代码上面的表达式我还有些不太理解,希望各位能给些指教,谢谢。
...全文
1893 26 打赏 收藏 转发到动态 举报
写回复
用AI写文章
26 条回复
切换为时间正序
请发表友善的回复…
发表回复
列子汤问 2016-04-28
  • 打赏
  • 举报
回复
嗯。debug是王道
ArthurJava 2016-04-27
  • 打赏
  • 举报
回复
cout << n * (n + 1) / 2;
自信男孩 2016-04-25
  • 打赏
  • 举报
回复
这就是和1+……+100求和问题;n是循环变量;有多个线条就需要循环多少次;
warmersen 2016-04-25
  • 打赏
  • 举报
回复
撸主是刚入门吧,这是最基本的语法了
chengbai321 2016-04-24
  • 打赏
  • 举报
回复
来学习的,和一样
kingwzy 2016-04-23
  • 打赏
  • 举报
回复
不要看线条什么的,就是求1+2+3+4+......+200=什么
Jhone.Yu 2016-04-23
  • 打赏
  • 举报
回复
把for循环中的n换小一点, 比如:
for(n = 1;n<5;n++)
t = t + n;
你会发现最后t的值等于10! 总共循环了4次! 第一次:t = 0,n = 1,t = t+n->t = 1; 第二次:t = 1,n = 2,t = t+n ->t = 3 第三次:t = 3,n = 3,t = t+n->t = 6 第四次:t = 6,n = 4,t = t+n->t = 10 …… n<200就是循环199次 类推
q66666w 2016-04-20
  • 打赏
  • 举报
回复
丿末兮 2016-04-18
  • 打赏
  • 举报
回复
不就是for循环做累加吗 想想小学1到50求和就明白了 都是一个道理
cocoabird 2016-04-18
  • 打赏
  • 举报
回复
lz数学好差
xyl574117954 2016-04-16
  • 打赏
  • 举报
回复
等差数列,累和,不复杂的。
伊顺鸣 2016-04-16
  • 打赏
  • 举报
回复
楼主,支持一下!!!
qq_34682388 2016-04-16
  • 打赏
  • 举报
回复
美女喝茶 求关注静远茶城
毕健 2016-04-14
  • 打赏
  • 举报
回复
看看C程序设计-谭浩强著(大学C语言经典教材)。
小灸舞 版主 2016-04-13
  • 打赏
  • 举报
回复
引用 6 楼 sinat_34615052 的回复:
[quote=引用 2 楼 qq423399099 的回复:] 这个表达式就是1到200的累加求和 如果t不初始化为0,在很多编译器里它的值将是一个垃圾值(用垃圾值加上1到200的累加和还是一个垃圾值,打印的结果也就不对了) t = t + n会循环200次,循环完200次以后才printf打印结果

for(n = 1; n <= 200; n = n+1)
    t = t + n;
printf("从第一行到第200行所有的点个数为%d\n", t);
可不可以这样理解,t就是所有点的总和,n是第n条线上的点的个数,这样一来的话,t = 0 这个表达式(也就是初始化)可不可以看成是刚开始t是从0开始的,因为刚开始是没有点的,直到出现了第一条线上的第一个点才开始有意义,同理,如果把变量t的值变成1的话,那就是说一开始就已经有了一个点了(这也算是一种初始化,只是起始点不同对吧?),这样的话最终的打印结果在数值上也就多了一个1,而不会是一个垃圾值,我能这样理解吗?[/quote] 前半部分是对的,变量t的值是几,并不代表就有几个点,因为t是每个点的值的累加和,t是3的时候其实只有2个点
yi_yoo_ 2016-04-13
  • 打赏
  • 举报
回复
变量名没起好, 把t改成sum就简单了. t = 0 就是最初是0个点. t = t + n 就是总数等于之前的点数加上新的线上的点数.
sinat_34615052 2016-04-13
  • 打赏
  • 举报
回复
引用 3 楼 wangjingtao1994 的回复:
t = t + n 的意思不是说自己等于自己加一个数,,,,而是把自己和另一个数的和赋值给一个变量,而这个变量正好是自己,所以就把原来的值覆盖了,,,你可以这么理解,,, int a = t+n; t = a; 用a的值覆盖t,而a就是t和n的和,, 注意:t = t+n 和 t += n虽然结果一样,但原理完全不同,不过在没学操作符重载的时候可以当一样的使
谢谢 你这一说好像我确实明白了一些,就是因为t被初始化了,才需要 t = t + n 这个表达式的对吧?不然就不必设置 t 这个变量而直接输出 n 的值就可以了(思想上是这样,虽然这在逻辑上行不通)对吧?因为 n 就代表了点数,如果哪里说得不对,请谅解,本人初入c没几天,正在学习中,这些问题都是琢磨不透才来提问的,我个人性格就是遇到再小的问题也要弄明白,不然不好受
sinat_34615052 2016-04-13
  • 打赏
  • 举报
回复
引用 2 楼 qq423399099 的回复:
这个表达式就是1到200的累加求和 如果t不初始化为0,在很多编译器里它的值将是一个垃圾值(用垃圾值加上1到200的累加和还是一个垃圾值,打印的结果也就不对了) t = t + n会循环200次,循环完200次以后才printf打印结果

for(n = 1; n <= 200; n = n+1)
    t = t + n;
printf("从第一行到第200行所有的点个数为%d\n", t);
可不可以这样理解,t就是所有点的总和,n是第n条线上的点的个数,这样一来的话,t = 0 这个表达式(也就是初始化)可不可以看成是刚开始t是从0开始的,因为刚开始是没有点的,直到出现了第一条线上的第一个点才开始有意义,同理,如果把变量t的值变成1的话,那就是说一开始就已经有了一个点了(这也算是一种初始化,只是起始点不同对吧?),这样的话最终的打印结果在数值上也就多了一个1,而不会是一个垃圾值,我能这样理解吗?
shi789789789 2016-04-13
  • 打赏
  • 举报
回复
当为计数器呀
赵4老师 2016-04-13
  • 打赏
  • 举报
回复
代码功能归根结底不是别人帮自己看或讲解或注释出来的;而是被自己静下心来花足够长的时间和精力亲自动手单步或设断点或对执行到某步获得的中间结果显示或写到日志文件中一步一步分析出来的。 提醒:再牛×的老师也无法代替学生自己领悟和上厕所! 单步调试和设断点调试(VS IDE中编译连接通过以后,按F10或F11键单步执行,按Shift+F11退出当前函数;在某行按F9设断点后按F5执行停在该断点处。)是程序员必须掌握的技能之一。
加载更多回复(6)

69,371

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧