2014-10-30 73 views
0

我需要一個程序,我可以在這裏輸入數字,最後它給了我最高的數字。 爲什麼它不這樣工作?我需要改變什麼?從輸入中獲取最高數字

public class Program 
{ 
    public static void Main() 
    { 
     double[] input = new double[12]; 
     for (int i = 1; i <= 12; i++) 
     { 
      Console.Write(" Type in {0} number:", i); 
      input = [Convert.ToInt32(Console.ReadLine())]; 
     } 

     Console.WriteLine("The highest number is {0}", input.Max(element => Math.Abs(element))); 

     Console.ReadKey(); 
    } 
} 
+5

您不需要存儲所有輸入的輸入。只存儲目前輸入的最大數量,並且只有在用戶輸入較大數字時才更新。 – artokai 2014-10-30 18:20:50

+1

我認爲應該輸入[i] – Vishal 2014-10-30 18:22:02

+0

首先,你需要明確什麼不適合你。您發佈的代碼不能編譯。但是,你實際上遇到了什麼問題? – 2014-10-30 18:22:16

回答

0

你需要使它所以它轉換成一倍,也設置爲每個單獨的元素

input[i] = Convert.ToDouble(Console.ReadLine()); 

,然後改變這一點,因爲arrray從0開始

for (int i = 0; i <= 11; i++) 
+0

謝謝,它的工作。 – aha364636 2014-10-30 18:48:43

+0

當你第一次開始時,沒問題的數組有點令人困惑。 – 2014-10-30 18:49:50

0

正如@Ashad Shanto說,你必須使用Convert.ToDouble,您必須使用input[i],而不是input。所以,你的代碼應該是這樣的:

public class Program 
{ 
    public static void Main() 
    { 
     double[] input = new double[12]; 
     for (int i = 0; i < 12; i++) 
     { 
      Console.Write(" Type in {0} number:", i); 
      input[i] = [Convert.ToDouble(Console.ReadLine())]; 
     } 

     Console.WriteLine("The highest number is {0}", input.Max(element => Math.Abs(element))); 

     Console.ReadKey(); 
    } 
} 
+0

除非實際預期非整數輸入,否則不需要將其轉換爲double而不是int。當然,在這種情況下,也不需要數組是'double []'而不是'int []',所以誰才真正知道OP實際需要什麼。 :) – 2014-10-30 18:25:49

0

由於@artokai提到你不需要存儲所有輸入的數字。

嘗試以下操作:

double heighest = Double.MinValue; 
    for (int i = 0; i < 12; i++) 
    { 
     Console.Write(" Type in {0} number:", i); 
     double input = (Convert.ToDouble(Console.ReadLine()); 
     if (input > heighest) 
      heighest = input 

    } 
    Console.WriteLine("The highest number is {0}", highest); 
+1

以上假定不存在負面的輸入。另外,「轉換」之前的方括號不屬於。 – 2014-10-30 18:27:51

+0

上面還假設用戶只輸入一個雙精度值。 – 2014-10-30 18:36:36

0

是有一個雙人間或詮釋的要求?無論如何,通過簡單的比較,您可以在每次輸入新號碼時簡單地存儲最高號碼。

public static void Main() 
{ 
    var currentNumber = 0; 
    for (var i = 1; i <= 12; i++) 
    { 
     Console.Write(" Type in {0} number: ", i); 

     var number = Console.ReadLine(); 
     int result; 

     if (int.TryParse(number, out result)) 
     { 
      if (currentNumber < result) 
      { 
       currentNumber = result; 
      } 
     } 
    } 

    Console.WriteLine("The highest number is {0}", currentNumber); 
    Console.ReadKey(); 
}