Вывести в консоль сумму введенных пользователем чисел с помощью Цикла for. C#

Нужно заполнить коллекцию из 10 целых чисел с клавиатуры (заполнить данными от пользователя) и посчитать сумму всех введенных пользователем чисел.

class Program
{
    static void Main(string[] args)
    {
        for (int i =0; i < 10;i++)
        {
            Console.WriteLine("Введите число");
            Convert.ToInt32(Console.ReadLine());
            Console.WriteLine($" {i+i}");
        }
    }
}

Сделал вот такой код, но это не сумма всех введенных чисел, а сложение переменной на саму себе с шагом +1. Помогите, пожалуйста исправить мой код ?


Ответы (1 шт):

Автор решения: aepot

Давайте разберу всю задачу с самого начала.

Присваивание

Вот смотрите, присваивание в шарпе работает просто

// переменная = значение;
i = 3;

Чтобы оно сработало, переменная должна быть ранее объявлена. Но переменную можно объявить так же вместе с присваиванием, для этого перед ее именем надо написать ее тип. Нельзя дважды объявить одну и ту же переменную в текущем блоке кода.

// тип переменная = значение;
int i = 3;

Вывод в консоль

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

// конкатенация строк
Console.WriteLine("Значение i = " + i);
// использование встроенного форматирования метода WriteLine
Console.WriteLine("Значение i = {0}", i);
// интерполяция строк
Console.WriteLine($"Значение i = {i}");

Вывод в консоль будет у всех трех способов одинаковый. Что именно использовать - вам решать. Я предпочитаю интерполяцию. Конечно со строками много всякого можно делать, но для вашей задачи этих знаний хватит.

Коллекции

Для начала, вам стоит познакомиться двумя из них: массивом и списком.

Как оно объявляется:

// массив
// тип[] переменая = new тип[количество_элементов];
int[] array = new int[10];
// список
// List<тип> переменая = new List<тип>();
List<int> list = new List<int>();

Первое, что бросается здесь в глаза - это то что у массива при создании его экземпляра (new создает экземпляр объекта) количество элементов массива известно заранее, а у списка их можно добавлять по ходу дела.

Здесь важно условие вашей задачи "коллекцию из 10 целых чисел". Количество известно заранее? Да, значит используем массив.

ВАЖНО: нумерация элементов, то есть их порядковые номера в массиве начинаются с нуля 0.

Циклы

Можно было бы написать 10 строк кода и ввести 10 значений, но что если их 2000 или еще больше... Хотя что это я - вы уже знакомы с циклом for. Берем всё, что я написал выше, собираем вместе, получаем следующий блок кода.

int[] a = new int[10];
Console.WriteLine("Введите 10 чисел.");
for (int i = 0; i < a.Length; i++)
{
    Console.Write($"Введите a[{i}]: ");
    a[i] = int.Parse(Console.ReadLine()); // то же самое, что Convert.ToInt32(), но мне так больше нравится 
}

Вот и готова первая часть задачи. Имеем массив из 10 элементов, заполненный пользователем.

Кстати, обратите внимание, у вас в коде Convert.ToInt32(Console.ReadLine()); вы никуда не присваиваете число, считанное с клавиатуры.

Математика

Чтобы посчитать сумму элементов, нужно ее где-то хранить. Окей, объявим еще одну переменную.

int sum = 0;

Чтобы что-то прибавить к переменной, то есть не просто присвоить, а учитывая текущее ее значение - прибавить к ней, можно воспользоваться такой конструкцией:

sum = sum + 3;

Или есть более короткая запись того же самого:

sum += 3;

Теперь точно так же, как считывалось оно с клавиатуры, только заменим тело цикла на суммирование.

for (int i = 0; i < a.Length; i++)
{
    sum += a[i];
}

Ну и выведем консоль

Console.WriteLine($"Сумма 10 элементов массива: {sum}");

Готово. Думаю, вам не составит труда теперь собрать это воедино и заставить работать.

→ Ссылка