高分求下面4道VB题目的解答

1:VB 编制通用函数过程,计算double类型一维数组成所有元素的平均值。

2:VB 用随机函数产生50个10—100之间的互不相同的整数,存在一数组中,并以升序每行10个数显示在窗体上。

3:用随机函数产生100个(0-99)范围内的随机整数,统计个位上的数字为0的元素个数,个位上的数字为1的元素个数……个位上的数字为9的元素个数

4:用Vb编写程序代码实现将一个一维数组中元素向右循环移动,移动次数N使用inputbox()函数输入。例如数组各元素的值依次为0,1,2,3,4,5,6,7,8,9,10;移动三次后,各元素的值依次为8,9,10,0,1,2,3,4,5,6,7。

写出过程就好。好的话我另外再给你加分咯,急急急!

1
Dim i as integer
dim sum as double
for i = 0 to UBound(数组名)-1
sum = sum + 数组名(i)
next i
print "the average is " & sum/UBound(数组名)

2
Private Sub Command1_Click()
Dim i, j, tempi As Integer
Dim ab(50) As Integer
Dim M_all As String
For i = 0 To 49
tempi = Int(100 * Rnd + 1)
For j = 0 To UBound(ab) - 1
If tempi = ab(j) Then
tempi = Int(100 * Rnd + 1)
End If
Next j
ab(i) = tempi
Next i
For i = 0 To UBound(ab) - 1
tempi = ab(i)
For j = i To UBound(ab) - 1
If ab(i) > ab(j) Then
tempi = ab(i)
ab(i) = ab(j)
ab(j) = tempi
End If
Next j
Next i
For i = 0 To UBound(ab) - 1
If i Mod 10 = 0 Then
M_all = M_all & Chr(13) & CStr(ab(i))
Else
M_all = M_all & " " & CStr(ab(i))
End If
Next i
Label1.Caption = M_all
End Sub

3
Private Sub Command1_Click()
Dim i, j, k, l As Integer
Dim ab(100) As Integer
Dim M_all As String
For i = 0 To 99
ab(i) = Int(100 * Rnd)
Next i
For i = 0 To UBound(ab) - 1
If i Mod 18 = 0 Then
M_all = M_all & Chr(13) & CStr(ab(i))
Else
M_all = M_all & " " & CStr(ab(i))
End If
Next i
Label1.Caption = M_all
For i = 0 To UBound(ab) - 1
If ab(i) Mod 10 = 0 Then
j = j + 1
End If
If ab(i) Mod 10 = 1 Then
k = k + 1
End If
If ab(i) Mod 10 = 9 Then
l = l + 1
End If
Next i
Label2.Caption = "个位上为0的个数为:" & j & "个。" & Chr(13) & "个位上为1的个数为:" & k & "个。" & Chr(13) & "个位上为9的个数为:" & l & "个。"
End Sub

4
Dim ab(10) As Integer

Private Sub Command1_Click()
Label1.Caption = "十个数:"
Label2.Caption = "生成数:"
Dim i As Integer
For i = 0 To 9
ab(i) = i /*如果要随机生成十个字,请把这里的=i替换 成 int(rnd*100+1)*/
Label1.Caption = Label1.Caption & " " & ab(i)
Label2.Caption = Label2.Caption & " " & ab(i)
Next i
End Sub

Private Sub Command2_Click()
Dim aTime, i As Integer
aTime = Val(InputBox("数组将按你输入的个数右循环", "请输入个数", 0))
For i = 0 To aTime - 1
Call Run_list
Next i
End Sub
Function Run_list()
Dim i, tempi As Integer
For i = 0 To UBound(ab) - 2
tempi = ab(UBound(ab) - 1 - i)
ab(UBound(ab) - 1 - i) = ab(UBound(ab) - 2 - i)
ab(UBound(ab) - 2 - i) = tempi
Next i
Label2.Caption = "生成数:"
For i = 0 To UBound(ab) - 1
Label2.Caption = Label2.Caption & " " & ab(i)
Next i
End Function

Private Sub Form_Load()
Command1.Caption = "生个10个数"
Command2.Caption = "右循环"
End Sub

Private Sub Timer1_Timer()
Rnd
End Sub
温馨提示:答案为网友推荐,仅供参考
第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
第3个回答  2009-04-16
,m vbklgdffmv ldckvjivlio b uyt32r65/ 587m;jkghfd[fpggm

参考资料:lhonjl'hopbjohuy

第4个回答  2009-04-08
有个高手回答咯
第5个回答  2009-04-20
3
3