Вывести в консоль сумму введенных пользователем чисел с помощью Цикла 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 шт):
Давайте разберу всю задачу с самого начала.
Присваивание
Вот смотрите, присваивание в шарпе работает просто
// переменная = значение;
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}");
Готово. Думаю, вам не составит труда теперь собрать это воедино и заставить работать.