| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1020 人关注过本帖
标题:VB的一个小问题哦 调用过程 编译完了之后不管打什么数 label里都显示该数 ...
只看楼主 加入收藏
a86819318
Rank: 2
等 级:论坛游民
帖 子:63
专家分:10
注 册:2009-10-8
结帖率:40%
收藏
已结贴  问题点数:10 回复次数:4 
VB的一个小问题哦 调用过程 编译完了之后不管打什么数 label里都显示该数是回文数!!高手来帮帮忙
Private Sub Command2_Click()
Dim a As Integer, c As String
a = Text1.Text
Call gcd(a, c)
Label1.Caption = c
End Sub

Sub gcd(h%, c)
Dim i
Dim e
Dim a As String
Dim b As String
e = Len(Str(n))
For i = 1 To (n \ 2)
a = Mid(Str(n), i, 1)
b = Mid(Str(n), e - i + 1, 1)
If a <> b Then Exit For
Next i
If i > (n \ 2) Then
c = "该数是回文数"
Else
c = "该数不是回文数"
End If
End Sub
所谓的回文数例如12321 就是个回文数   正着读与反着读是一样的

[ 本帖最后由 a86819318 于 2009-11-12 19:05 编辑 ]
搜索更多相关主题的帖子: 编译 label 回文 
2009-11-12 19:03
风吹过b
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:364
帖 子:4947
专家分:30084
注 册:2008-10-15
收藏
得分:3 
Private Sub Command2_Click()
Dim a As Integer, c As String
a = Text1.Text
Call gcd(a, c)
Label1.Caption = c
End Sub

Sub gcd(h%, c)
Dim i
Dim e
Dim a As String
Dim b As String
e = Len(Str(n))                           'str(n) 前面会自动生成一个空格,你这个算法,需要去掉这个空格
For i = 1 To (n \ 2)                    '计算出来的长度是 e ,不是N ,变量用错了
a = Mid(Str(n), i, 1)
b = Mid(Str(n), e - i + 1, 1)
If a <> b Then Exit For
Next i
If i > (n \ 2) Then                '此处变量也用错了.
c = "该数是回文数"
Else
c = "该数不是回文数"
End If
End Sub
所谓的回文数例如12321 就是个回文数   正着读与反着读是一样的

授人于鱼,不如授人于渔
早已停用QQ了
2009-11-12 19:14
风吹过b
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:364
帖 子:4947
专家分:30084
注 册:2008-10-15
收藏
得分:0 
修改的代码:

Option Explicit

Private Sub Command1_Click()
Dim a As Integer, b
a = Text1.Text
b = gcd(a)
Label1.Caption = b
End Sub

Function gcd(n%)
Dim i
Dim e
Dim a As String
Dim b As String
Dim k As String
k = Trim(Str(n))        '转字串,并去掉前后空格
e = Len(k)
For i = 1 To (e \ 2)
a = Mid(k, i, 1)                 '所有的取数,直接用前面处理好的字串
b = Mid(k, e - i + 1, 1)
If a <> b Then Exit For
Next i
If i > (e \ 2) Then
gcd = "该数是回文数"
Else
gcd = "该数不是回文数"
End If
End Function


授人于鱼,不如授人于渔
早已停用QQ了
2009-11-12 19:15
bczgvip
Rank: 14Rank: 14Rank: 14Rank: 14
等 级:贵宾
威 望:66
帖 子:1310
专家分:5312
注 册:2009-2-26
收藏
得分:3 
程序代码:
Function gcd$(n%)
Dim i&, e&
Dim a As Byte
Dim b As Byte
Dim k() As Byte
k = StrConv(n, vbFromUnicode)
e = UBound(k) + 1
For i = 1 To (e \ 2)
a = k(i - 1)
b = k(e - i)
If a <> b Then Exit For
Next i
If i > (e \ 2) Then
gcd = "该数是回文数"
Else
gcd = "该数不是回文数"
End If
End Function
2009-11-12 20:50
风吹过b
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:364
帖 子:4947
专家分:30084
注 册:2008-10-15
收藏
得分:0 
要弄这么隆重,使用数组啊.......

不过,他这个函数本身就有问题,传入的参数是 int ,很容易就溢出的.

授人于鱼,不如授人于渔
早已停用QQ了
2009-11-12 21:02
快速回复:VB的一个小问题哦 调用过程 编译完了之后不管打什么数 label里都显示 ...
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.061942 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved