| 网站首页 | 业界新闻 | 小组 | 交易 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
买学问 - 大牛一对一辅导,有问必答买学问 - 专业的付费知识问答平台
共有 191 人关注过本帖
标题:如果一个正整数从高位到低位上的数字一次递减,则称为降序数(如9631,9772是 ...
只看楼主 加入收藏
h2918228916
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2019-6-7
  问题点数: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
2019-06-07 20:53
林月儿
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:湖南
等 级:版主
威 望:123
帖 子:1896
专家分:8289
注 册: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
等 级:新手上路
帖 子:4
专家分: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
来 自:湖南
等 级:版主
威 望:123
帖 子:1896
专家分:8289
注 册:2015-3-19
  得分:0 
恩,我也是菜鸟

知命以下无敌
2019-06-08 09:04
风吹过b
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:248
帖 子:4393
专家分:26976
注 册: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







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

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