| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 480 人关注过本帖
标题:30分,小问题大哥指点一下
只看楼主 加入收藏
woaiqiufeng
Rank: 2
等 级:禁止访问
帖 子:38
专家分:29
注 册:2010-3-13
结帖率:100%
收藏
已结贴  问题点数:30 回复次数:2 
30分,小问题大哥指点一下
程序代码:
Public Class Form1
    Function ish(ByVal n%)
        Dim i As Integer
        n = Val(TextBox1.Text)
        If n >= 0 And n < 10 Then
            Label3.Text &= n & ""
            Do While (n > 10)
                For i = 1 To Len(n)
                    If Mid(n, 1, i) = Mid(n, 1, (Len(n) - i + 1)) Then Label3.Text &= n & ""
                Next

            Loop


        End If
        Return n

    End Function
    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        Dim i As Integer, n As Integer
        n = ish(i)
    End Sub
End Class
得不到结果,回文数
搜索更多相关主题的帖子: 30分 大哥 color 
2010-04-28 20:50
wei855198
Rank: 8Rank: 8
等 级:蝙蝠侠
威 望:5
帖 子:228
专家分:944
注 册:2009-4-24
收藏
得分:30 
首先,你这个函数的功能是不是判断文本框里输入的数是不是回文数?如果是的话就在lable的text属性里写上这个数字再加一个星号?
错误一、do while(n>10),因为n的值是你一开始就输入进去了,不是在循环中改变的,如果你输入的n大于10了,那就是个死循环了。
错误二、If Mid(n, 1, i) = Mid(n, 1, (Len(n) - i + 1)) Then ,先看下MSDN里mid函数的用法
Public Shared Function Mid( _
   ByVal str As String, _
   ByVal Start As Integer, _
   Optional ByVal Length As Integer _
) As String

    其中第二个参数是读取串的开始位置,第三个参数是读取的长度,你这个等号两边,读取串的开始位置一样,长度不一样,怎么可能相等。
错误三、也许对这点我不能确定你的想法,只说说我自己的。如果判断数字串的第一个数和最后一个数相等了,还不能确定它就是回文数,如12341.也就是循环结束了,每一次判断都相等,才能证明它是回文数。
还有一点,我自己测试了一下,n值作为字符串和integer的时候,用Len函数得到的长度不一样。len(n as integer)得到的结果不正确。
我修改了下代码,交流下
程序代码:
Public Class Form1
    Function ish(ByVal n As String)
        Dim i As Integer
        n = TextBox1.Text.ToString
        'MsgBox(Len(n))         '测试len函数了
        'Dim j As Integer
        'j = CInt(Val(n))
        'MsgBox(Len(j))
        Dim ishw As Boolean = True      '标志变量
        If n >= 0 And n < 10 Then
            Label3.Text &= n & ""
        ElseIf n > 10 Then
           
            For i = 1 To Len(n)
                '不知道有没有可以倒着读字符串的函数,所里这里第次只能读一个字符
                '第三个参数只能为1
                If Mid(n, i, 1) <> Mid(n, Len(n) - i + 1, 1) Then  
                    ishw = False
                    Exit For
                End If
            Next

        End If
        If ishw = True Then
            MsgBox(n & "是回文数")
            Label3.Text &= n & ""
            Return n
        Else
            MsgBox(n & "不是一个回文数")
            Return 0
        End If


    End Function
    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        Dim i As Integer, n As Integer
        n = ish(i)
    End Sub
End Class



[ 本帖最后由 wei855198 于 2010-4-29 14:25 编辑 ]

护肤小店 http://mina2010.
靓装小店 http://liangliyizu2010.
2010-04-29 14:22
woaiqiufeng
Rank: 2
等 级:禁止访问
帖 子:38
专家分:29
注 册:2010-3-13
收藏
得分:0 
嘿嘿 大哥 你太好人了
2010-04-29 16:58
快速回复:30分,小问题大哥指点一下
数据加载中...
 
   



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

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