定义一个数组, 包含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.即结果都是按照这五个数的最高位(左起第一位)排序的。
求解答???? 展开
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.即结果都是按照这五个数的最高位(左起第一位)排序的。
求解答???? 展开
展开全部
你的程序有几处不合适的地方
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)强制转化为整数型进行计算
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)强制转化为整数型进行计算
展开全部
你应该把排序的数字转化为字符串来比较在前面插入0
即008,043,034,032,123
即008,043,034,032,123
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
你希望怎么排?
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
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
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
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询