藏宝阁可以用花呗吗:VB 的问题

来源:百度文库 编辑:中科新闻网 时间:2024/05/12 07:56:09
Private Sub Command1_Click()
Dim i As Integer, n As Integer, p As Integer, s As Integer, j As Integer
s = 0
For i = 1 To n
p = 0
For j = 1 To i
p = p + j
Next j
While p <= 200
s = s + p
Wend
Next i
Print "s="; s
End Sub
我要编的是求s=1+(1+2)+(1+2+3)+..+(1+2+..+n)直到最后一项大于200.可是我用上面那个整出来老是s=0.各位帮忙看一下吧.....谢谢
为什么要把"i=i+1"放到前面?为什么不可以放到"p=p+j"后面?

正确的:
Dim i As Integer, n As Integer, p As Integer, s As Integer, j As Integer
s = 0
While p <= 200
p = 0
i = i + 1
For j = 1 To i
p = p + j
Next j
s = s + p
Wend
Print "s="; s

首先你的这里的N并没有初始化,N的直等于0
所以For i = 1 To n 等价于For i = 1 To 0
一次都没有执行.

还有在不知道循环次数的情况下要用条件循环语句才对

可以放在后面:
Dim i As Integer, n As Integer, p As Integer, s As Integer, j As Integer
s = 0
i = 1'I必须先赋直为1
While p <= 200
p = 0
For j = 1 To i
p = p + j
Next j
i = i + 1
s = s + p
Wend
Print "s="; s

这里的i是用来决定P是由几个连续的自然数加起来的.
比如对于这个式子s=1+(1+2)+(1+2+3)+..+(1+2+..+n)
第一项I=1 自然数有1个1
第二项I=2 自然数有2个:1,2
.
.
.
第N项 I=N ..