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
功能 开始_点击()
m=0
for(i=1;i<101;i++)
m=m+i
endfor
help.messagebox(m)
功能结束
复制代码
作者:
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