2014-10-30 71 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(); 
}