在列表前方插入一个数据_n个数据 冒泡升序排序需要经过n-1遍的加工,每一遍加工自下而上比较相邻两个数据,把较小者交换到上面,在第i遍加工过程中需要进行n-i对数据的比较,在某些情况下,第i遍加工过...

4.

(2020高二下·丽水期中)

某班级学生为毕业晚会的一个节目设计一个仿“V”字造型,先筛选出班级中n名学生的所有男生,然后将参演的男生按照身高,摆出中间低两边高(先右后左)的造型,如图1 所示。王林同学用VB编写模拟“节目造型”程序,功能如下:从数据库中导出所有学生编号、性别和身高数据;单击“筛选排序”按钮Command2,根据身高仿“V”字和造型进行有序排列,并将结果显示在文本框Text2 中。程序运行界面如图2所示。举例说明如下:

原1-7号男生身高

171 172 180 174 176 179 178

筛选排序后序列

171 172 174 176 178 179 180

“造型设计”后序列

180 178 174 171 172 176 179

图1

身高顺序:男3号〉男6号〉男7号〉男5号〉男4号〉男2号〉男1号

图2

Dim h (1 To n) As Integer

Dim height1(1 To n) As Integer

Dim height2(1 To n) As Integer

Dim n As Integer,i As Integer, j As Integer, num As Integer ,tmp As Integer

Dim sex(1 To n) As String

Private Sub Form_Load()

'n名学生的身高和性别由数据库导出,分别存储在数组h 和sex中,代码略!

End Sub

Private Sub Command1_Click()

b = 0

For i = 1 To n         'n名学生中的男生

If sex(i) = “男” Then ① : height1(num) = h(i)

Next i

For i = 1 To num - 1

For j = num To i + 1 Step -1

If height1(j) < height1(j - 1) Then

tmp = height1(j): height1(j) = height1(j - 1): height1(j - 1) = tmp

End If

Next j

Next i

For i = 1 To num

Text1.Text = Text1.Text + " " + Str(height1(i))

Next i

End Sub

Private Sub Command2_Click()

Dim left, right As Integer, i As Integer, mid As Integer

mid = Int((1 + num) / 2)

left = 0: right = 0

height2(mid) = height1(1)

For i = 1 To (num - 1) \ 2

right = right + 1

height2(mid + right) = height1(2*i)

left = left + 1

Next i

If num Mod 2 = 0 Then  ③

For i = 1 To num

Text2.Text = Text2.Text + " " + Str(height2(i))

Next i

End Sub

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值