定义一个数组, 包含5个元素, 都是随机整数(随便输入), 要求把他们按照从大到小的顺序排列起来 .VBS编程

Dima(4),tempForx=1To5a(x-1)=CInt(a(x-1))a(x-1)=inputbox("请随机输入第"&x&"个数字")Nextmsgbox("... Dim a(4),temp
For x=1 To 5
a(x-1)=CInt(a(x-1))
a(x-1)=inputbox("请随机输入第"&x&"个数字")
Next
msgbox("排序后的数组顺序为"&a(0)&","&a(1)&","&a(2)&","&a(3)&","&a(4))
For i=1 To 4
For m=0 To 4-i
If a(m)<a(m+1) Then
temp=a(m)
a(m)=a(m+1)
a(m+1)=temp
End if
Next
Next
msgbox("排序后的数组顺序为"&a(0)&","&a(1)&","&a(2)&","&a(3)&","&a(4))
上面是我写的程序。但是运行的时候出现了以下问题:
1、如果所有的五个数都是的位数相同(比如都是两位数:32,12,42,32,11),那么得到的结果是正确的。
如果五个数的位数不同(比如:123,32,43,8,34),那么得到的结果就是:8,43,34,32,123.即结果都是按照这五个数的最高位(左起第一位)排序的。

求解答????
展开
 我来答
ququqiqi
2012-07-26 · TA获得超过1110个赞
知道小有建树答主
回答量:259
采纳率:0%
帮助的人:231万
展开全部
你的程序有几处不合适的地方
1:用dim声明变量时没有指明变量类型,此时默认变量类型为variant(变体型)
2:inputbox是以字符串形式输入的,字符串的排序是按照字典序,这样错误也就难免了
3:变量i,m,x未声明,这虽然不影响程序运行,但未声明的变量默认为变体型,也有可能导致错误
4:第六行的"msgbox("排序后的数组顺序为"&a(0)&","&a(1)&","&a(2)&","&a(3)&","&a(4))"疑似应为"msgbox("排序前的数组顺序为"&a(0)&","&a(1)&","&a(2)&","&a(3)&","&a(4))"

a(x-1)=CInt(a(x-1))
a(x-1)=inputbox("请随机输入第"&x&"个数字")
这两句交换位置,可以将变体类型的a(x-1)强制转化为整数型进行计算
蔡瑀
2012-07-26 · TA获得超过231个赞
知道小有建树答主
回答量:424
采纳率:0%
帮助的人:331万
展开全部
你应该把排序的数字转化为字符串来比较在前面插入0

即008,043,034,032,123
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
硬棘鲨
2012-07-26 · TA获得超过794个赞
知道小有建树答主
回答量:472
采纳率:0%
帮助的人:497万
展开全部
你希望怎么排?
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友e201398
2020-12-03
知道答主
回答量:2
采纳率:0%
帮助的人:1328
展开全部
dim f(4)
for i=0 to 4
f(i)=inputbox("请输入随机整数:")
f(i)=CInt(f(i))
str1=str1 & f(i) & chr(2)
next
dim i,j,k
for i=0 to 4
for j=i to 4
if f(i)<f(j) then
k=f(j)
f(j)=f(i)
f(i)=k
end if
next
str2=str2 & f(i) &chr(2)
next
str=str1 & vbCrlf & str2
msgbox str
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式