为了账号安全,请及时绑定邮箱和手机立即绑定

求助,关于VB冒泡法之for循环原理?麻烦大佬看看

求助,关于VB冒泡法之for循环原理?麻烦大佬看看

慕神8447489 2021-06-03 06:07:16
Private Sub Form_Click()Dim a(1 To 5) As LongDim i, j, z As Long For i = 1 To 5 a(i) = InputBox("请输入") Next i For i = 5 To 1 Step -1 '解释这个二重循环? For j = 1 To i - 1 If a(j) > a(j + 1) Then t = a(j + 1) a(j + 1) = a(j) a(j) = t End If Next j Next i For i = 1 To 5 Print a(i); " "; Next iEnd Sub1、二重循环中的外层为什么要终值到初值然后要步长-1这样做的目的?2、内层循环中为什么要初值到外层-1是什么意思。目的又是什么?
查看完整描述

1 回答

?
泛舟湖上清波郎朗

TA贡献1818条经验 获得超3个赞

先弄清冒泡法求解的方式。每次循环后冒出一个最大值,假设第一次循环时i
=
5,程序循环比较5次,找出最大值,第一次循环后这个最大值存入a(5),此时i
=
5
-
1,而内层循环中
j
表示的是数组
a(j)的存储地址,每次循环比较的是a(j)和a(j+1)里面的值,每比较一次
j
指向的地址就+1。a()数组一共只能存储5个数据,所以
1<=
j
<=
5;
另外再补充一下,
for
j
=
1
to
i
-
1
;没什么
-1
这个意思,也许这个才是问题的根本,这句的意思是
这个
for
语句里面的程序循环执行
i
-
1
次,这个是内部循环,每完成一次内部循环
i
的值比上次少
1
,所以每次内循环就会少一次,冒泡法的算法思想就是每次冒一个数出来.



查看完整回答
反对 回复 2021-06-07
  • 1 回答
  • 0 关注
  • 266 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信