VB程序选择排序法降序排序中i,j,k弄错了的问题

VB程序选择排序法降序排序中i,j,k弄错了的问题,第1张

If e(i) < e(j) Then k = j

这后面是 k=j ,跟i没有任何关系,所以应该是

If e(k) < e(j) Then k = j

由于then后面的语句与then是写在同一行的,所以不用End If。如果是下面这样就需要End If:

If e(k) < e(j) Then

  k = j

End If

另外,你这个k纯属多余,可以改为:

Private Sub Command1_Click()

Dim e(20) As Integer

For i = 1 To 5

    e(i) = Val(InputBox("请输入第" & i & "个成绩:", "输入"))

Next i

For i = 1 To 4

    For j = i + 1 To 5

        If e(i) < e(j) Then

            t = e(i)

            e(i) = e(j)

            e(j) = t

        End If

    Next j

    Print e(i)

Next i

End Sub

你可以用这样的算法:把十个数编进一个数组,然后判断数组内相邻两元素之间的大小,若前一个数大于后一个数,则不做改变;若反之,则交换两个元素的值。具体代码我就不写了吧,手机上不好打代码。反正我遇到这种东西习惯用Fornext语句。

错就错在那个 n=0 !这样的话,你每次输入字符串后按回车键,n的值都会变为0,然后n=n+1=0+1=1,所以n的值就固定为1了!把n=0去掉即可。

另外你的代码还可以优化一下:

Private Sub Command1_Click()

For i = 1 To n - 1

   For j = i + 1 To n

      If s(j) > s(i) Then

         t = s(i)

         s(i) = s(j)

         s(j) = t

      End If

   Next j

Next i

For i = 1 To n

   Picture1Print s(i)

Next i

End Sub

以上就是关于VB程序选择排序法降序排序中i,j,k弄错了的问题全部的内容,包括:VB程序选择排序法降序排序中i,j,k弄错了的问题、简单的VB选择法排序题,急求答案!、vb选择排序问题等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zz/9841391.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-02
下一篇 2023-05-02

发表评论

登录后才能评论

评论列表(0条)

保存