2011-10-25 88 views
1

我想知道如何確定用戶輸入的任何數字中的最高數字和最低數字。我們應該在用戶輸入99之後顯示這些內容。我發現的所有內容都是使用數組,我們還沒有學到這些。請幫忙!如何確定C#中的最高和最低整數?

 string input; 
     int input2; 
     Console.WriteLine("Enter an integer"); 
     input = Console.ReadLine(); 
     input2 = Convert.ToInt32(input); 


     while (input2 != 99) 
     { 
      Console.WriteLine("Enter an integer"); 
      input = Console.ReadLine(); 
      input2 = Convert.ToInt32(input); 
     } 
+5

忽略你知道C#,你將如何實現算法?試着用英文來形容它。然後嘗試用你所知道的C#重寫。 – svick

+0

您是否可以編寫用於從數組中查找最高(或最低)編號的程序?首先編寫一個查找最高/最低的程序,然後將兩者結合起來 – krammer

+0

另外,如果用戶輸入「Fish!」,則可能希望使用Convert.ToInt32的int.TryParse來避免發生異常。 – Ricibob

回答

5

命令性編程的思想是,得到突變狀態(一組變量),直到它包含了所需的結果語句(算法)的一個序列。

例如,程序更改變量inputinput2的內容,直到input2包含值99

要找到最高和最低的整數,請定義兩個變量,highestlowest。在while循環中更改它們的內容,使得在每次迭代之後,它們分別包含最高和最低整數,並考慮當前輸入值。

+0

我做了最高和最低,並在代碼的第一行將它們設置爲零,但我不明白我會如何將最高和最低內容更改爲整數。我的意思是,我知道如何改變它,但我不知道如何讓它「知道」它的價值低於或高於以前的投入。 – Josh

+2

@JoshClary,想一想吧。你怎麼知道數字6比數字2高?你如何將它們比較在一起? –

+0

好的,我想我現在知道該怎麼做。我創建'最高'和'最低',並將它們設置爲0,並在 'if if(input2> highest) highest = input2; 如果(輸入2 <最低) 最低=輸入2;' – Josh

0

如果要將整數存儲在列表中,可以使用linq擴展方法.Min()返回最小整數,並使用.Max()返回最大整數。

0

您需要一些變量來記錄最大值和最小值(您應該初始化哪些值?)。在每個用戶輸入/循環迭代中,您應該將用戶輸入與這些變量的當前值進行比較,並在必要時更新它們(有幾種方法可以做到這一點 - 有些比其他方式更爲冗長)。你需要決定(檢查規格)如何處理99例如,這是否計爲最小或最大?

-3
int min = int.Max; 
int max = int.Min; 

// ... 

while (input2 != 99) { 
    // ... 
    min = Math.Min(min, input2); 
    max = Math.Max(max, input2); 
} 

// At this point, min and max contain the desired result. 

有幾個邊緣案件這裏,例如如果用戶輸入99馬上或她只int.Max進入了min(或int.Minmax),但我會告訴你搞定......

+3

不要爲他做功課! – Ricibob

+0

@Ricibob這是我能想到的用於表達基本想法的最簡潔的格式。你會注意到我沒有寫出完整的代碼,我提到他應該考慮邊緣情況,所以這不是一種他可以複製粘貼而不去理解它的東西。 –

相關問題