Получить наибольшее число из входов

Мне нужна программа, где я могу набирать цифры, и в конце она дает мне наибольшее число. Почему это не работает так? Что мне нужно изменить?

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();
    }
}

4 ответа

Решение

Вы должны сделать так, чтобы его преобразование удваивалось, а также устанавливалось для каждого отдельного элемента.

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

а затем изменить это, потому что массив начинается с 0

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

Как сказал @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();
    }
}

Как отметил @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 или 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();
}
Другие вопросы по тегам