作者fumizuki (小獅子)
看板Visual_Basic
標題Re: [VB6 ]求救
時間Fri Jun 10 09:43:43 2005
※ 引述《jyvonne78 (燃燒的雲燕)》之銘言:
: 老師出了一個題目就是在1-100中隨機選出5個數字,然後從新排序再利用一個程
: 式找出最大值和最小值,最後再算出平均值
: 下面我寫的有沒有錯阿 請各位大大指教
: 亂數的我已經寫出來了 可是排列到平均值就不會寫了
: 雖然去看過的最大值的用法 可是他說無法執行 是不是我的範圍定錯了呢?
是誰說無法執行? 沒有語法錯誤呀@@"
整個程式實在看不懂在做什麼,整個邏輯完全錯了吧@@"
重寫一個給你...
Private Sub Command1_Click()
'隨機選數
Dim i As Integer, r(4) As Integer
Randomize
'亂數初始化
AutoRedraw = True
'自動重繪
For i = 0 To 4
r(i) = CInt(Rnd * 99 + 1)
'Rnd * (100 - 1) + 1 四捨五入
Print r(i);
If i < 4 Then Print ", "; Else Print
'輸出,逗點分隔,最後一個數換行
Next
Sort r
Print "最大值:" & Max(r)
Print "最小值:" & Min(r)
Print "平均值:" & Round(Avg(r), 2)
'小數點後二位
End Sub
Private Sub Sort(a)
'由小至大排序
Dim i As Integer, j As Integer
For i = 0 To UBound(a)
For j = i + 1 To UBound(a)
If a(i) > a(j) Then Swap a(i), a(j)
Next
Next
End Sub
Private Function Max(a) As Integer
'陣列中尋找最大值
Dim i As Integer
Max = a(0)
For i = 1 To UBound(a)
If a(i) > Max Then Max = a(i)
Next
End Function
Private Function Min(a) As Integer
'陣列中尋找最小值
Dim i As Integer
Min = a(0)
For i = 1 To UBound(a)
If a(i) < Min Then Min = a(i)
Next
End Function
Private Function Avg(a) As Double
'求陣列中的平均值
Dim i As Integer, c As Integer, Sum As Integer
c = UBound(a) + 1
For i = 0 To c - 1
Sum = Sum + a(i)
Next
Avg = Sum / c
End Function
Private Sub Swap(a, b)
'兩數調換
Dim c
c = a: a = b: b = c
End Sub
--
VB 程式設計 倉木麻衣 PTT 星爺板 行列輸入法
======================================================
Visual_Basic MaiKuraki Stephen Array
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 210.58.156.43