程序出错了,大佬帮忙看看
vb吧
全部回复
仅看楼主
level 3
这个程序的错误是溢出,能怎么解决,换成long类型不匹配
2023年03月09日 08点03分 1
level 15
这个题没必要用二重循环啊,试试这样:
Dim str As String, i As Integer, num1 As Long, num2 As Long, num3 As Long
str = "642138579"
For i = 1 To 9
num1 = CLng(Left(str, 2))
num2 = CLng(Mid(str, 3, 3))
num3 = CLng(Right(str, 4))
If num1 * num2 = num3 Then
Text1.Text = Text1.Text & num1 & "*" & num2 & "=" & num3 & vbCrLf
End If
str = Mid(str, 2) & Left(str, 1) '把第一位数移到最后一位
Next i
关于Integer和Long的问题,这里用Integer确实是有可能溢出的,用Long就不会溢出了,而你原来的代码会报错“类型不匹配”则是因为在截取num3时会出现空串
2023年03月09日 13点03分 0
谢谢
2023年03月10日 05点03分
1