帮俺看看这段vb回文数程序有啥错误

来源:百度知道 编辑:UC知道 时间:2024/06/17 19:40:51
Function huiwen(i As String)
huiwen = False
For j = 1 To c / 2
If Left(i, j) = Right(i, j) Then
huiwen = True
End If
Next
End Function

Private Sub Command1_Click()
Dim i As String
i = Str(Text1.Text)
c = Int(Len(i))
If huiwen(i) = True Then
MsgBox "回文"
Else
MsgBox "非回文"
End If
End Sub

错误1:变量c没有定义,无法确定是全局变量,还是局部变量
错误2:If Left(i, j) = Right(i, j) Then 这句有问题,应该用MID函数
错误3: 循环中有问题,即使前面若干次huiwen = False ,而最后一次huiwen = True ,也会被程序误判断为回文数
问题4: Command1_Click中 i变量没有必要定义,直接传递Text1.Text就可以了
问题5: Function huiwen(i As String) 后没有定义类型
好的习惯1: 最好定义每一个变量,j变量没有定义
好的习惯2: i,j,k 一般是循环变量,不要把它们做为参数传递

按照你的思路,修改如下:
Function huiwen(hw As String) As Boolean
Dim j As Integer
Dim c As Integer
c = Len(hw)

huiwen = True
For j = 1 To c / 2
If Mid(hw, j, 1) <> Mid(hw, c - j + 1, 1) Then
huiwen = False
Exit For
End If
Next
End Function

Private Sub Command1_Click()
If huiwen(Text1.Text) = True Then
MsgBox "回文"
Else
MsgBox "非回文"
End If
End Sub

Function huiwen(i As String)
dim ll as long
huiwen = False
ll=len(i)
For j = 1 To ll / 2
If mid(i,j,1) <> mid(i,ll-j+1,1) Th