我想找到3個整數之間的最大整數。如何找到3個整數之間的最大整數
我可以通過嵌套If
聲明來做到這一點。由於我有更多的代碼可以寫,但是這會很長,不整潔。
我在想,如果有發現的最大整數(S)(包括如果讓我們說A
和B
是平等的,但均高於C
)更簡單的方法。
P.S你可以用二維數組做這個嗎?
我想找到3個整數之間的最大整數。如何找到3個整數之間的最大整數
我可以通過嵌套If
聲明來做到這一點。由於我有更多的代碼可以寫,但是這會很長,不整潔。
我在想,如果有發現的最大整數(S)(包括如果讓我們說A
和B
是平等的,但均高於C
)更簡單的方法。
P.S你可以用二維數組做這個嗎?
使用LINQ做到這一點:
Dim numbers() As Integer = {1, 3, 5}
Dim max As Integer = numbers.Max()
Debug.Write("Max number in numbers() is " & max.ToString())
輸出:
上編輯爲每對話與OP想知道哪個流派被評爲最佳。
當被問及時你如何獲得數據? OP迴應:
我在每一行都有一個包含電影|流派的文本文件。我讀到這一點,並計算哪種類型(3分)是最高的。
我已經草擬了一些從文本文件讀取並填充類的代碼。
首先讓我告訴你的代碼:
Dim myFilms As New Films
Using sr As New IO.StreamReader("C:\films.txt")
Do Until sr.Peek = -1
Dim columns As String() = sr.ReadLine().Split(New Char() {"|"c}, StringSplitOptions.RemoveEmptyEntries)
'columns(0) = film name
'columns(1) = genre
myFilms.Add(New Film(columns(0), columns(1)))
Loop
End Using
If myFilms.Count > 0 Then
Dim bestGenre = myFilms.GetBestGenre()
'Go off and read the genre file based on bestGenre
End If
從上面的代碼,你可以看到類Films
被填充了一個新Film
。然後,我會從Films
課程中調用一種方法,但前提是有電影可供選擇。讓我告訴你這兩個類的結構:
電影:
Public Class Film
Public Key As String
Public Sub New(ByVal filmName As String,
ByVal genre As String)
_filmName = filmName
_genre = genre
End Sub
Private _filmName As String
Public ReadOnly Property FilmName As String
Get
Return _filmName
End Get
End Property
Private _genre As String
Public ReadOnly Property Genre As String
Get
Return _genre
End Get
End Property
End Class
電影:
Public Class Films
Inherits KeyedCollection(Of String, Film)
Protected Overrides Function GetKeyForItem(ByVal item As Film) As String
Return item.Key
End Function
Public Function GetBestGenre() As String
Return Me.GroupBy(Function(r) r.Genre).OrderByDescending(Function(g) g.Count()).First().Key
End Function
End Class
我必須指出,儘管代碼工作,它可能會粘住如果你有兩個或更多的聯合頂級流派。該代碼仍然有效,但它只返回其中一種流派。您可能希望根據該場景擴展代碼以滿足您的需求。
嘗試這樣:
Dim max As Integer
max = integer1
If integer2 > max Then
max = integer2
End If
If integer3 > max Then
max = integer3
End If
,我能想到的把我的頭要做到這一點的頂部沒有更多的辦法。
沿着這些線的東西可以適用於任何數量的整數。 將數字放入一個數組中,然後使用For[...]Next
語句來循環比較當前成員與max
的數組。如果max
較低,請將其設置爲當前成員。當循環終止,max
將包含最高數量:
Dim nums() As Integer = {1, 2, 3}
Dim max As Integer
For i = 0 To nums.Length - 1
If max < nums(i) Then
max = nums(i)
End If
Next
他們都將是整數/雙精度/小數?如果不是,那麼不是很容易。 – David
他們都是整數,但是,我需要知道哪些是哪個。 – Suhaib
「進一步的代碼」是否依賴於哪個變量是最大的? –