永发信息网

VB题目 数据溢出"6",谢谢

答案:1  悬赏:10  手机版
解决时间 2021-05-18 12:26
  • 提问者网友:捧腹剧
  • 2021-05-18 01:19

Option Explicit

Private Sub Command1_Click()
Dim i As Integer, hw As String, fg As Boolean
Dim st As String
For i = 80 To 150
fg = False
Call hw8(i, hw, fg)
If fg Then
st = CStr(i) & "==>" & hw & "& O"
List1.AddItem st
End If
Next i
End Sub

Private Sub hw8(n As Integer, hw As String, f As Boolean)
Dim k As Integer, st() As String * 1, i As Integer
hw = ""
Do
k = k + 1
ReDim Preserve st(k)
st(k) = n Mod 8
hw = st(k) & hw
n = n \ 8
Loop Until n < 0
For i = 1 To UBound(st) / 2
If st(i) <> st(UBound(st) - i + 1) Then Exit For
Next i
f = True
End Sub

这是08年秋季第二套试卷,江苏省计算机二级,我有答案,根据答案改后是可以的,可是我不明白就是输入代码后,按开始,显示溢出,实时错误6,可是针对这个怎样改才行呢,针对改错和编程题,有没有什么诀窍和套用方法,感谢高手啦~~~

最佳答案
  • 五星知识达人网友:痴妹与他
  • 2021-05-18 02:56

Dim k As Integer


通过反复运算K=K+1后,K会超出Integer定义范围(范围从-32768到32767),因此造成溢出。


由于我不清楚你的题目要求具体是什么,所以我也不知道应该怎样修改才可以达到要求。


{


关于溢出问题,必须限制K的范围。比如在"Loop Until"处这样写:Loop Until n<0 or K=32767。


我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯