VB编程关于算法惪...

来源:百度知道 编辑:UC知道 时间:2024/06/05 17:56:11
有米会做这个VB编程惪```会惪朋友进来帮个忙蛤```
输入自然数N,分别求N以内3惪倍数,5惪倍数,7惪倍数之和....是分别求出3个结果....用1个COMMAND BUTTON计算....应该怎样写....用 DO WHILE……LOOP惪语句....老是做成死循环....或者帮忙看看我编惪这个到底哪错勒....
Private Sub Command1_Click()
N = Text1.Text
a = 0
b = 0
c = 0
i = 1
Do While i <= N
If i Mod 3 = 0 Then
a = a + i
End If
If i Mod 5 = 0 Then
b = b + i
End If
If i Mod 7 = 0 Then
c = c + i
i = i + 1
End If
Loop
Label1.Caption = a
Label2.Caption = b
Label3.Caption = c

End Sub
嗯...我知道这个问题MS很白痴...但是还是希望有会惪朋友麳帮下忙啦...先谢谢勒>_<
那个...其实i=i+1这裏后来是改过来勒惪...但是还是死循环....

错误有4个,
1个是i=i+1, 这个放到了MOD 7的IF中了
2个是统计变量,a,b,c应该是+1,而不是+i
3个是while i<n ,而不是<=N, 这样就会多循环1次
4个是关键的, 你的N因为是直接等于TEXT1的,也没有定义数据类型,所以它是文本型的,所以它永远比I值大..

Private Sub Command1_Click()
n = Val(Text1.Text)
a = 0
b = 0
c = 0
i = 1
Do While i < n
If i Mod 3 = 0 Then
a = a + 1
End If
If i Mod 5 = 0 Then
b = b + 1
End If
If i Mod 7 = 0 Then
c = c + 1
End If
i = i + 1
Loop

Label1.Caption = a
Label2.Caption = b
Label3.Caption = c

End Sub

更简捷的代码应该是:
Private Sub Command1_Click()
n = Val(Text1.Text)
a = 0
b = 0
c = 0
i = 1
Do While i < n
If i Mod 3 = 0 Then a = a + 1
If i Mod 5 = 0 Then b = b + 1
If i Mod 7 = 0 Then c = c + 1
i = i + 1
Loop

Label1.Caption = a
Label2.Caption = b
Label3.Caption = c

End Sub

你的问题出在最后一个endif上,那个endi