数组中的最大最小值_用VB求解数组的最大值、最小值代码分析

在VB编程中,数组占据着相当重要的作用,往往结合循环控制结构、函数过程出现在程序代码中。

今天,以求解数组最大值、最小值为例,带领大家学习一下数组的基本应用。

首先是定义一个数组,然后再用Rnd随机函数给数组元素赋值,接着使用循环 & 选择结构来实现求解。

VBde 1

Private Sub Command1_Click() '求解最大值与最小值

Dim a%(1 To 20), max%, min%, i& '定义数组与变量

Randomize '产生随机数种子

max = a(1)

min = a(1)

For i = 1 To 20

    a(i) = Int(Rnd * 121 + 30) '产生30--150之间的随机整数

    Print a(i);

    If i Mod 5 = 0 Then Print '每行输出5个数

    If max < a(i) Then max = a(i)

    If min > a(i) Then min = a(i)

Next i

Print "------------------------------------------------"

Print "最大值:Max值为"; max & ",最小值Min值为" & min

End Sub

baf46bdbb7b5bb6d922d05536c9c6999.png问题来了!

上面的代码运行后,我们会发现问题:最大值求出来的没有问题,但是最小值得到的是0,这是哪儿出问题了呢?

6f71a7bd24594fb805480c5a2b930a20.png

问题解决 a1c5ec7fc5d89d068ddce770c2fad3a6.gif

遇到问题就要及时解决,这样才会不断进步,不断提高!

如果一个人在学习的过程中,没有遇到过任何问题,那显然是不可能的,尤其是在编程语言的学习中,逻辑一定要清晰,知识内容要熟练掌握。

问题产生原因:

min = a(1)

If min > a(i) Then min = a(i)

这两句代码专门抽起来,帮助大家更好的理解。

a(1)在数组没有赋值前,其值是0,所有min=0;

在数组赋值中,我们知道是产生的30--150之间的随机整数,所有任何一个数组元素其值一定是>=30的。

很明显,min是0,在执行If语句时,If min > a(i) 怎么都不会成立,所以Then后面自然也就不执行,最后得到的就是0了。

问题解决:

在定义Min时,我们要定义为一个大的数,这样在程序中与数组中的元素一一比较,小的元素值赋值给Min,这样才是正确的。

改进后的代码

Private Sub Command1_Click()

Dim a%(1 To 20), max%, min%, i&

Randomize

max = a(1)

min = 150

For i = 1 To 20

    a(i) = Int(Rnd * 121 + 30) '产生30--150之间的随机整数

    Print a(i);

    If i Mod 5 = 0 Then Print

    If max < a(i) Then max = a(i)

    If min > a(i) Then min = a(i)

Next i

Print "------------------------------------------------"

Print "最大值:Max值为"; max & ",最小值Min值为" & min

End Sub

ccf71399da9a938bdde71afbeb3ff6b2.png

修改后再运行,结果正确无误

7cea23ae59db1731cb51fba4df64e400.png    答疑解惑

学习VB中有问题可以长按识别下图添加老师微信号,学习问题在线答疑。

d735059881fc63923f003234d86b0e5b.png

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值