#include <iostream> // Подключение библиотеки для потокового ввода и вывода (cin, cout)
#include <clocale> // Подключение библиотеки для локализации текста
using namespace std; // Использование стандартного пространства имен
// Предусловия: n - любое целое число
// Постусловия: функция возвращает истину, если n - нечетное число
bool out_number(int n)
{
// ================================== для блок-схемы
if (n % 2 != 0) // Проверка: если остаток от деления на 2 не равен 0
return true; // Функция возвращает истину (число нечетное)
else
return false; // Иначе возвращается ложь (число четное)
// ================================== краткий вариант
// return (n % 2 != 0);
}
int main()
{
// Считает кол-во нечетных чисел, перемножает все нечетные и по заданию находит позицию 4-го числа
// Предусловие: последовательность целых чисел вводится пользователем через пробел
// Постусловие: нахождение количества, произведения нечетных чисел и номера четвертого нечетного числа
setlocale(LC_ALL, "Russian"); // Включение вывода русского текста в консоли Windows
int n; // Объявление переменной для считывания текущего числа
int k = 0; // Счетчик количества найденных нечетных чисел
long long P = 1;// Переменная для вычисления произведения нечетных чисел
int j = 0; // Счетчик общего порядкового номера числа в последовательности
int Num = 0; // Переменная для хранения номера четвертого нечетного числа
cout << "Введите числа через пробел, по окончании нажмите enter:" << endl; // Вывод подсказки пользователю
do // Используем do-while, чтобы цикл гарантированно сработал минимум один раз
{
cin >> n; // Считывание очередного числа из консоли через cin
j++; // Увеличение общего счетчика позиции текущего числа
// Проверка условия через вызов нашей логической функции
if (out_number(n))
{
k++; // Увеличение счетчика нечетных чисел
P *= n; // Накопление произведения нечетных чисел
if (k == 4) // Проверка: если встретилось четвертое нечетное число
{
Num = j; // Запоминаем его порядковый номер в общей последовательности
}
}
} while (cin.peek() != '\n'); // Повторять цикл, пока следующий символ в потоке не Enter
if (k > 0) // Если в последовательности было хотя бы одно нечетное число
{
cout << "Количество нечетных чисел: " << k << ", произведение нечетных чисел: " << P << endl;
}
else // Если нечетных чисел не оказалось вовсе
{
cout << "Нечетных чисел в последовательности нет." << endl;
}
if (Num != 0) // Если четвертое нечетное число было найдено
{
cout << "Номер в последовательности четвертого нечетного числа: " << Num << endl;
}
else // Если найдено меньше 4 нечетных чисел
{
cout << "Нечетных чисел меньше 4" << endl;
}
system("pause"); // Задержка экрана консоли перед закрытием
return 0; // Успешное завершение программы
}