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#. Для соседних задач пригодятся эти разборы:

Подписаться
Уведомить о
guest
0 комментариев
Старые
Новые Популярные

Настройки cookie

0
Оставьте комментарий! Напишите, что думаете по поводу статьи.x