TC官方合作论坛

标题: 如何用循环达到这个效果? [打印本页]

作者: 77721241    时间: 2013-8-26 20:12
标题: 如何用循环达到这个效果?
1+2+3+4+5+……+100 =?

功能 开始_点击()
a=0
b=100-a
c=(a+b)*50+50  //a+b=a+100-a ;
辅助.消息框(c)
功能结束

0+100;1+99。。。加上0就是有101个数,到50的时候正好组合50次;还余一个50……

这是用最直接的规律写的……

用遍历该如何写?  思路我已经有了……
a=0;
b=a+1
c=a+b;
当a>100时遍历结束。

尝试了好久。。都没能成功- -#

作者: q765758576    时间: 2013-8-26 20:19
变量 a = 0,结果
循环(a < 100)
a++
结果=结果+a
循环结束
辅助.信息框(“0-100的数:”&结果)




这样写可以不?
作者: 77721241    时间: 2013-8-26 20:30
回复 2楼q765758576的帖子

你这个代码形式我也尝试过。循环外调用不出来  变量 结果。。。。
作者: qq06314488    时间: 2013-8-26 21:00
    c=0
    遍历(a=0;a<50;a++)
        b=100-a
        c=c+a+b
    遍历结束
   辅助.消息框(c)
作者: 77721241    时间: 2013-8-26 21:13
回复 4楼qq06314488的帖子

这样的话……你看看结果;  遍历结束 得出的C是5000. 而真正的结果是5050。。。。

在进入遍历前 C的值为50就解决了- -#

我先去研究研究。。。为什么遍历外面消息框显示的C不是50呢?
作者: qq06314488    时间: 2013-8-26 21:28
回复 5楼77721241的帖子

你自己都说了,最后就预留一个50,所以我以为最后直接c+50不就好了,我只不过是按你的写法去写的
如果是想最后获得5050,那么直接101*50就OK了
1+100=101,2+99=101,重复50次,你懂的
作者: 77721241    时间: 2013-8-26 23:37
回复 6楼qq06314488的帖子

已经搞明白了。。最后遍历结束;C的值已经变为5050了。

     我想问一下;为什么C这个变量在遍历里面的话;在遍历结束之后辅助.消息框(c)那个C报错呢
作者: qq06314488    时间: 2013-8-27 00:05
回复 7楼77721241的帖子

变量是有作用域的
作者: kaixindexifan    时间: 2013-8-27 03:13
  1. 功能 开始_点击()
  2. m=0
  3. for(i=1;i<101;i++)
  4. m=m+i
  5. endfor
  6. help.messagebox(m)
  7. 功能结束
复制代码


作者: 77721241    时间: 2013-8-27 03:50
回复 8楼qq06314488的帖子

如果不在 循环体外 声明的话;那么循环体里面的变量就是 局部变量了把。
作者: 77721241    时间: 2013-8-27 03:56
回复 9楼kaixindexifan的帖子

对。 我所想的就是这个…… 谢谢!

       曾经用C语言写出来过这个代码。。。这都快2年了- -#又忘掉了;
作者: kaixindexifan    时间: 2013-8-27 10:38
回复 11楼77721241的帖子

学东西学多了是这样的,人老了,记忆力就跟不上那个了呢。
作者: qq06314488    时间: 2013-8-27 10:41
回复 10楼77721241的帖子

聪明




欢迎光临 TC官方合作论坛 (http://bbs.52tc.co/) Powered by Discuz! X3.1