Vb.net 如何计算数组中的最大数…visual basic
如何计算数组中的最大数字…下面是代码…有人能帮我解决问题吗…我想在其他windows窗体的标签中显示结果…谢谢你Vb.net 如何计算数组中的最大数…visual basic,vb.net,vba,Vb.net,Vba,如何计算数组中的最大数字…下面是代码…有人能帮我解决问题吗…我想在其他windows窗体的标签中显示结果…谢谢你 Public Class Frm2 Public Parties(9) As String Public Votes(9) As String Dim vote As Integer Dim Party As String Party = TParty.Text vote = TVote.Text
Public Class Frm2
Public Parties(9) As String
Public Votes(9) As String
Dim vote As Integer
Dim Party As String
Party = TParty.Text
vote = TVote.Text
For I As Integer = 0 To Parties.Length - 1
If Parties(I) = "" Then
Parties(I) = TParty.Text()
For J As Integer = 0 To Votes.Length - 1
If Votes(J) = "" Then
Votes(J) = TVote.Text()
MsgBox(TParty.Text & TVote.Text & " votes")
TParty.Clear()
TVote.Clear()
Exit Sub
End If
Next J
End If
Next
MsgBox("you can vote now")
如果您想使用算法在数组中查找最大的数字(比如说
投票数
),经典算法来自所谓的冒泡排序:
现在变量max
存储数组投票
的最高值,您可以在任何地方显示,例如在MyForm.MyLabel.Text=max
中。更多有用的信息
请注意,现在您将
公众投票(9)声明为字符串,这意味着它们是字符串,因此不能用作数字。您可能希望使用不同的数据类型声明它们,或者使用CInt()
方法按照ja72的建议转换整数字符串 我认为这只适用于变体
数组,但在快速测试中,它似乎也适用于长
数组:
Dim Votes(9) as Long
Dim Max As Long
Max=WorksheetFunction.Max(Votes)
请注意,正如Matteo所说,您应该将vots()更改为数字类型的数组。我会使用Long
,因为它是原生VBA类型
编辑:正如Dee所指出的,这个问题中的代码实际上是VB.Net。我把它作为标签加上去了。在VBA中,解决方案会更简单,因为Max
是一个数组属性:
Max=Votes.Max
(我想将变量名从“Max”改为“Max”是个好主意)是否将数字存储为文本?考虑使用<代码> VoTes()作为整数< /代码>。我不知道在哪里<代码> TPU</代码>或<代码> TVote <代码>。这是代码在VBA还是在VB.NET?@ DEE在您的评论之后,实际上在我看来它是在VB.NET。确保这一点很重要,因为在这种情况下,用户将无法使用WorksheetFunction.Max(投票)
@MatteoNNZ,这一点很好。在这种情况下,只需使用投票.Max
。或使用CInt()
将字符串转换为整数即可。请注意,此方法不仅更易于“写入”,而且效率更高,因为它使用内置函数,而不是通过元素循环。我个人只能对此进行投票,但如果我是你,我会选择这种方式。
Max=Votes.Max