C# 从输入中获取最大数量

C# 从输入中获取最大数量,c#,arrays,max,highest,console.readline,C#,Arrays,Max,Highest,Console.readline,我需要一个程序,在那里我可以输入数字,最后它给了我最高的数字。 为什么不这样工作?我需要改变什么 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:",

我需要一个程序,在那里我可以输入数字,最后它给了我最高的数字。 为什么不这样工作?我需要改变什么

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();
    }
}
公共类程序
{
公共静态void Main()
{
双精度[]输入=新双精度[12];
对于(int i=1;i Math.Abs(element));
Console.ReadKey();
}
}

正如@Ashad Shanto所说的,你必须使用
转换。ToDouble
,你必须使用
输入[i]
而不是
输入。因此,您的代码应该如下所示:

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();
    }
}
公共类程序
{
公共静态void Main()
{
双精度[]输入=新双精度[12];
对于(int i=0;i<12;i++)
{
Write(“键入{0}号:”,i);
输入[i]=[Convert.ToDouble(Console.ReadLine())];
} 
WriteLine(“最大的数字是{0}”,input.Max(element=>Math.Abs(element));
Console.ReadKey();
}
}

您需要将其转换为double,并对每个元素进行设置

 input[i] = Convert.ToDouble(Console.ReadLine());
然后改变这个,因为arrray从0开始

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

for(int i=0;i正如@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);
double heighest=double.MinValue;
对于(int i=0;i<12;i++)
{
Write(“键入{0}号:”,i);
双输入=(Convert.ToDouble(Console.ReadLine());
如果(输入>高度)
heighest=输入
}
WriteLine(“最高的数字是{0}”,最高);

是否要求使用Double或Int?无论如何,每次输入新数字时,通过简单的比较,您只需简单地存储最高的数字即可

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();
}
publicstaticvoidmain()
{
var currentNumber=0;

对于(var i=1;i),您不需要存储所有输入的数据。只需存储到目前为止输入的最大数字,并且仅当用户输入更大的数字时才进行更新。我认为应该是输入[i]首先,您需要具体说明哪些部分不适合您。您发布的代码没有编译。但是您实际遇到的问题是什么?
i没有必要将其转换为double而不是int,除非实际需要非整数输入。当然,在这种情况下,数组也不需要是
double[]
而不是
int[]
,因此谁真正知道OP实际需要什么。:)以上假设没有负输入。此外,
转换之前的方括号不属于此项。
还假设用户只会输入一个双精度值。当您第一次开始时,没有问题数组会让人感到困惑。