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