标题:如果一个正整数从高位到低位上的数字一次递减,则称为降序数(如9631,9772是 ...
只看楼主
h2918228916
Rank: 1
等 级:新手上路
帖 子:9
专家分:0
注 册:2019-6-7
结帖率:50%
 问题点数:0 回复次数:4 
如果一个正整数从高位到低位上的数字一次递减,则称为降序数(如9631,9772是降序 数,而7245则不是降序数)。在文本框Textl中输入一 个正整数,单价“
Private Sub Command 1 _Click()
Dim i As Integer, s As String, flag As Boolean
               
flag=True : i=2
Do While i<=Len(s) And flag
If ______________ Then flag= false
i=i+l
Loop
If flag Then
Label2.Caption=s+”是降序数!”
Else
Label2.Caption=s+”不是降序数!”
End If
End Sub
搜索更多相关主题的帖子: 正整数 序数 文本框 flag If 
2019-06-07 20:53
林月儿
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:湖南
等 级:版主
威 望:138
帖 子:2276
专家分:10647
注 册:2015-3-19
得分:0 
s=Text1.Text
asc(mid(s,i,1)) < asc(mid(s,i-1,1))

[此贴子已经被作者于2019-6-7 22:12编辑过]


剑栈风樯各苦辛,别时冰雪到时春
2019-06-07 21:41
h2918228916
Rank: 1
等 级:新手上路
帖 子:9
专家分:0
注 册:2019-6-7
得分:0 
回复 2楼 林月儿
这一行应该有误吧asc(mid(s,i,1)) < asc(mid(s,i-1,1))
是>
2019-06-08 07:48
林月儿
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:湖南
等 级:版主
威 望:138
帖 子:2276
专家分:10647
注 册:2015-3-19
得分:0 
恩,我也是菜鸟

剑栈风樯各苦辛,别时冰雪到时春
2019-06-08 09:04
风吹过b
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:364
帖 子:4912
专家分:29900
注 册:2008-10-15
得分:0 
s = CStr(Val(Text1.Text))
初学者可以写成
s=text1.text

VAL 转换为数值,在输入时错误时,不会导致后面的逻辑错误
CSTR 再转为字符串,同时不保留前导空格,为了方便后面的处理。

If Mid(s, i, 1) > Mid(s, i - 1, 1) Then flag = False
取当前值,与前一位相比较,
i的初始值是2,所以一开始就有前一位
为啥不再套用 ASC 函数,因为字符比较本来就是按ASCII码在比较。
在这里,不管是按字符串比较模式,还是数字比较模式,结果都是正确的。
再套的函数可以用:
ASC
VAL
CINT
CLNG

-------------
i = i + 1
这里是加1(数字),不是加l(字母),应该是你抄写时错误。
有电脑,自己试着填代码运行一下就可以了。

授人于鱼,不如授人于渔
早已停用QQ了
2019-06-09 08:22



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-495148-1-1.html




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

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