C#
Как положить в массив введенные числа C#
Чтобы положить введенные числа в массив C#, создайте массив нужного размера, пройдите по нему циклом, считайте строку через Console.ReadLine, преобразуйте ее в число через int.TryParse и запишите по индексу. Важно помнить: ввод из консоли всегда приходит строкой, даже если пользователь набрал 25
Простой пример
int[] numbers = new int[5];
for (int i = 0; i < numbers.Length; i++)
{
Console.Write($"Введите число {i + 1}: ");
numbers[i] = int.Parse(Console.ReadLine() ?? "0");
}
Console.WriteLine("Массив:");
foreach (int number in numbers)
{
Console.WriteLine(number);
}
Этот код работает, если пользователь вводит только числа. Но если он введет текст, программа упадет. Поэтому для нормального учебного примера лучше использовать TryParse
Безопасный вариант с TryParse
int[] numbers = new int[5];
for (int i = 0; i < numbers.Length; i++)
{
Console.Write($"Введите число {i + 1}: ");
string? input = Console.ReadLine();
if (!int.TryParse(input, out int value))
{
Console.WriteLine("Ошибка: нужно ввести целое число");
i--;
continue;
}
numbers[i] = value;
}
Если ввод неправильный, i-- возвращает цикл на ту же позицию. Пользователь повторяет ввод, а массив не получает случайное значение
Почему нужен индекс
Массив в C# имеет фиксированный размер. Если написано new int[5], в нем есть пять ячеек с индексами от 0 до 4
numbers[0] = 10;
numbers[1] = 20;
Индекс 5 уже за пределами массива. Попытка обратиться к нему вызовет ошибку IndexOutOfRangeException
Как задать размер массива с клавиатуры
Можно сначала спросить количество чисел:
Console.Write("Сколько чисел ввести? ");
int size = int.Parse(Console.ReadLine() ?? "0");
int[] numbers = new int[size];
Но здесь тоже нужна проверка. Размер не должен быть отрицательным или слишком большим
if (size <= 0)
{
Console.WriteLine("Размер массива должен быть больше нуля");
return;
}
Как посчитать сумму после ввода
После заполнения массива можно пройти по нему и посчитать сумму:
int sum = 0;
foreach (int number in numbers)
{
sum += number;
}
Console.WriteLine($"Сумма: {sum}");
Это хорошая мини-задача: ввод, массив, цикл и расчет результата
Можно сразу найти максимум:
int max = numbers[0];
foreach (int number in numbers)
{
if (number > max)
{
max = number;
}
}
Console.WriteLine($"Максимум: {max}");
Так вы закрепляете не только ввод, но и обход массива с условием
Если массив может быть пустым, максимум так считать нельзя: numbers[0] вызовет ошибку. Поэтому перед расчетом проверяйте размер. В учебной задаче проще запретить размер меньше единицы и завершить программу с понятным сообщением
Когда лучше использовать List
Если заранее неизвестно, сколько чисел введет пользователь, удобнее List<int>. Массив хорош, когда размер известен заранее. Список хорош, когда элементы добавляются постепенно
List<int> numbers = new();
numbers.Add(10);
numbers.Add(20);
Но если задача прямо просит массив, используйте int[] и индексы
Частые ошибки
Первая ошибка — забыть, что индексы начинаются с нуля. Вторая — использовать Parse без проверки. Третья — пытаться добавить шестой элемент в массив из пяти элементов. Четвертая — путать массив int[] и список List<int>
Мини-задача: спросите у пользователя размер массива, заполните массив числами, выведите все числа, сумму и максимальное значение
Что почитать дальше по C#
Что почитать дальше по C#
Если нужен общий маршрут по теме, откройте рубрику C#. Для соседних задач пригодятся эти разборы:
- C# с нуля: первый проект через dotnet new
- Как установить .NET SDK для C#
- Классы и свойства в C#: первый пример
- Типы, переменные и строки в C#