第1个回答 2009-04-09
第1题:
Public Function Average(arr() As Double)
Dim sum As Double
For i = LBound(arr()) To UBound(arr())
sum = sum + arr(i) '累加元素
Next
Average = sum / (UBound(arr()) - LBound(arr()) + 1) ' 求平均数,注意:元素的总数应是数组下标减去上标加1
End Function
第2题:
Private Sub Command1_Click()
Dim arr1(49), arr2(49) As Byte 'arr1 用来存放原数组,arr2 用来存放排序后的新数组
For i = 0 To 49
re: Randomize
arr1(i) = Int(Rnd * 91 + 10) '返回随机数
For j = 0 To i - 1
If arr1(j) = arr1(i) Then GoTo re
Next
Next
'使用插入排序算法排序
For i = 0 To 49
j = i
Do While True
If j = 0 Then
arr2(j) = arr2(i)
Exit Do
End If
If arr1(i) > arr2(j - 1) Then
arr2(j) = arr1(i)
Exit Do
Else
arr2(j) = arr2(j - 1)
j = j - 1
End If
Loop
Next
For i = 0 To 49
if i mod 10=0 the print '10个后自动换行
Print arr2(i) ;
Next
End Sub
第3题
Private Sub Command1_Click()
Dim arr(99), C(9) As Byte 'Arr 存放原数组,C数组统计个位数为1、2、3……9出现的次数
'生成随机数,原理同2
For i = 0 To 99
re: Randomize
arr(i) = Int(Rnd * 100 + 1)
For j = 0 To i - 1
If arr(j) = arr(i) Then GoTo re
Next
Next
For i = 0 To 99
C(arr(i) Mod 10) = C(arr(i) Mod 10) + 1 '如果个位数为一,则C(1)加1,如果个位数为2,则C(2)加1,如果个位数为3,则C(3)加1,以次类推。
Next
For i = 0 To 9
Print "个位上的数字是" & i & "的元素个数共有" & C(i) & "个"
'输出结果。
Next
End Sub
第4题:
'使用 MoveArr 自定义函数处理……
Public Function MoveArr(arr1())
Dim arr2
ReDim arr2(LBound(arr1) To UBound(arr1))
N = Val(InputBox("请输入要向右移动的次数:", , "3"))
For i = LBound(arr1) To UBound(arr1)
arr2((i + N) Mod (UBound(arr1) - LBound(arr1) + 1)) = arr1(i)
Next
For i = LBound(arr2) To UBound(arr2)
arr1(i) = arr2(i)
Next
End Function
第2个回答 2009-04-13
第一道题简单就不说了。
第二道:
dim i as integer,j as integer,midint as integer
dim a(50) as integer
randomize
Rem产生50个随机数
for i=0 to 49
a(i)=int(91*rnd+10)
next i
REM 对这50个随机数排序(升序)
for i=0 to uBound(a)-1-j
for j=0 to uBound(a)-1
if a(i)>a(i+1) then
midint=a(j)
a(j)=a(j+1)
a(j+1)=a(j)
end if
next j
next i
REM 每行十个输出到窗体
for i=1 to 50
if i mod 10 = 0 then
print:
end if
print a(i-1)
next i
第三道题
rem 定义保存个位数字个数的变量
dim var0 as integer,var1 as integer,var2 as integer,var3 as integer
dim var4 as integer,var5 as integer,var6 as integer,var7 as integer
dim var8 as integer,var9 as integer
rem 定义一个数组保存产生的随机数
dim rond(100) as integer '这里也可以不用数组,只用一个INT变量也可以
dim i as integer
randomize
for i=0 to 99
rond(i)=int(rnd*100)
select case rond(i) mod 10
case 0
var0=var0+1
case 1
var1=var1+1
case 2
var2=var2+1
case 3
var3=var3+1
case 4
var4=var4+1
case 5
var5=var5+1
case 6
var6=var6+1
case 7
var7=var7+1
case 8
var8=var8+1
case 9
var9=var9+1
end select
next i
第四道题:
dim a() as type'把数组定义为你需要的类型
dim n as long
dim i as integer,j as integer
dim mida as type ‘和数组的类型一样
n=val(inputbox("xxxx","xxxx",3))
rem这里你可以加入判断输入的是不是数字
for i = 0 to n-1
mida=a(0)
for j=0 to uBound(a)-2
a(j)=a(j+1)
next j
a(uBound(a)-1)=mida
next i