Циклы

Последнее обновление: 22.02.2023
Упражнение 1

Напишите программу, которая выводит квадраты нечетных целых чисел от 1 до предела который вводит пользователь.

Решение
#include <iostream>
  
int main()
{
    int n {};   // предельное наибольшее число
    std::cout << "Enter a limit: ";
    std::cin >> n;  // вводим число
    for (int i {1}; i <= n; i += 2)
    {
        std::cout << i << ": " << i * i << std::endl;
    }
}

Пример работы программы:

Enter a limit: 7
1: 1
3: 9
5: 25
7: 49
Упражнение 2

Напишите программу, в которой в цикле do-while пользователь вводит по одному символу, а программа подсчитывает количество введенных символов. Когда пользователь вводит точку, ввод заканчивается, и программа выводит пользователю число введенных символов (не включая финальную точку)

Решение
#include <iostream>

int main()
{
    unsigned count {};
    char ch {};

    do
    {
        std::cin >> ch;     // считываем по одному символу
        ++count;            // увеличиваем счетчик символов
    } while (ch != '.');      // повторяем ввод, пока не будет введена точка

    // исключаем точку из подсчета, уменьшая счетчик
    --count;
    std::cout << "Characters count: " << count << std::endl;
}

Пример работы программы:

world.......
Characters count: 5
Упражнение 3

Напишите программу, в которой в цикле while пользователь вводит произвольное количество чисел, а программа вычисляет их сумму. После каждого ввода спрашивайте пользователя, закончил ли он ввод чисел. Если пользователь ввел "y" или "Y", то ввод чисел завершается, после чего программа должна вывести сумму всех введенных чисел и их среднее арифметическое.

Решение
#include <iostream>

int main()
{
    unsigned count {};    // количество введенных чисел
    int sum {};       // для хранения суммы чисел
  
    while (true)
    {
        std::cout << "Enter a number: ";
        int n;          // для ввода каждого числа
        std::cin >> n;
        sum += n;       // увеличиваем сумму на введенное число
        ++count;        // увеличиваем счетчик введенных чисел

        char yesno {};
        std::cout << "Finish (y/n)? ";   // спрашиваем, надо ли завершить
        std::cin >> yesno;

        if (yesno == 'y' || yesno == 'Y') break;    // если ввели y или Y, выходим из цикла
    }
    // выводим сумму чисел
    std::cout << "sum: " << sum << std::endl;
    // преобразуем в double, чтобы не потерять дробную часть
    std::cout << "average: " << (static_cast<double>(sum) / count) << std::endl;
}

Пример работы программы:

Enter a number: 1
Finish (y/n)? n
Enter a number: 2
Finish (y/n)? n
Enter a number: 3
Finish (y/n)? y
sum: 6
average: 2
Дополнительные материалы
Помощь сайту
Юмани:
410011174743222
Перевод на карту
Номер карты:
4048415020898850