算法说明
6 t3 b! Q0 s7 g( f) d0 n4 f2 Z6 R 在若干数中求最大值,一般先取第一个数为最大值的初值(即假设第一个数为最大值),然后,在循环体内将每一个数与最大值比较,若该数大于最大值,将该数替换为最大值,直到循环结束。! O; e6 n( ]2 O) e. ?* ~# P
求最小值的方法类同。 e; {2 `" c+ i; C
求若干数平均值,实质上就是先求和,再除以这些数的个数。
% u6 ~4 S8 P0 m& U/ V8 I! E# t 应用举例" W1 C( L7 z7 H) k& f
随机产生n个1-100(包括1和100)的数,求它们的最大值、最小值和平均值。
4 k- c' E% r. |+ }0 J* J6 `以下是引用片段:- v2 ~' e8 g7 d6 O
PRivate Sub Command1_Click() % i, U9 i S4 j. \1 i+ w
Dim n As Integer, i As Integer, min As Integer, max As Integer, aver As Single, s As Integer 8 g/ |8 e& i3 q! e$ y2 w
n = Val(InputBox("输入个数:")) 2 N+ F& h8 K5 G t' f: D) ^$ w
s = Int(Rnd * 100) + 1 2 x( T7 |- n, a1 p% S
max = s
; i( ^8 x, D0 v/ A min = s 0 Q$ \. [* y+ m
aver = s
7 M6 B5 v1 z4 U& X j& |) i" {3 r Print "第1个数是:" & s
1 i; B- }' s9 _+ N; O/ i" E, v2 ~ For i = 2 To n " x+ f% Z4 _, i8 G0 l. U) N/ S+ w& K
s = Int(Rnd * 100) + 1 2 P1 G% E. U* D3 S1 R
Print "第" & i & "个数是:" & s 1 `! j6 F- o3 _/ I2 j1 j. W
If s > max Then max = s
2 E+ g0 Y0 X: n w# G If s < min Then min = s
% Z: M9 B+ U; K C- p q) C+ x aver = aver + s
$ \5 M- P8 y/ N0 x Next i
% X* E8 r: m$ t R! `* d- d aver = aver / n 5 i; R- t8 {* w+ F
Print "max="; max; "min="; min; "aver="; aver $ a$ N) P# D& P7 b3 x4 b
End Sub ; q8 B; j6 r7 v3 J( K" n
+ y6 R+ U! X( p' O0 i6 d7 Q! U+ e 解题技巧8 k0 V- m- K! z2 ? m9 E+ J8 r" v, B
最大值、最小值、平均值类型题目往往和数组放在一起考!有的不仅求这些值,还要对具有最大值或者最小值的行或列或者某个元素进行处理,这时就要在记录最大、最小值时,同时记录该值所在的行号和列号。 |