Получить наибольшее число из входов
Мне нужна программа, где я могу набирать цифры, и в конце она дает мне наибольшее число. Почему это не работает так? Что мне нужно изменить?
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();
}