vb编程问题,急!!!

来源:百度知道 编辑:UC知道 时间:2024/05/24 12:58:29
下面是一个求回文数的问题~
回文数是指从前读到后或从后读到前都是一样的!
Function f(ByVal x%)
Dim a$, i%, c$, d$
a = Trim(Str(Text1.Text))
For i = 1 To Int(Len(a) / 2)
c = Mid(a, 0 + i, 1)
d = Mid(a, Len(a) + 1 - i, 1)
Next i
If c = d Then
Picture1.Print a & "★"
ElseIf c <> d Then
Picture1.Print a
End If

End Function

Private Sub Form_Click()
a = f(Text1.Text)
End Sub

运行后,12124也是回文数,求指出哪里出错?

你的函数有问题,我改了一下。
f返回true说明是回文数,false反之

Function f(x As Integer) As Boolean
Dim strX, strC, strD As String
f = True
strX = Trim(str(x))

For i = 1 To Len(strX) / 2
strC = Mid(strX, i, 1)
strD = Mid(strX, Len(strX) + 1 - i, 1)
If (strC <> strD) Then
f = False
End If
Next

End Function

Private Sub Command1_Click()
If (f(Text1.Text)) Then
MsgBox ("yes")
Else
MsgBox ("no")
End If
End Sub

Function f(ByVal s$)
Dim a$, i%, c$, d$
a = Trim(s)
For i = 1 To Int(Len(a) / 2)
c = Mid(a, 0 + i, 1)
d = Mid(a, Len(a) + 1 - i, 1)
If c <> d Then Exit For
Next i
If c = d Then
Picture1.Print a & "★"
ElseIf c <> d Then
Picture1.Print a
End If
End Function

Private Sub Form_Click()
a = f(Text1.Text)
End Sub

<