Загрузка данных
#include <iostream> // Подключение библиотеки для потокового ввода и вывода (cin, cout)
#include <clocale> // Подключение библиотеки для локализации текста
using namespace std; // Использование стандартного пространства имен
// Предусловия: n - любое целое число[span_0](start_span)[span_0](end_span)
// Постусловия: функция возвращает истину, если n - нечетное число[span_1](start_span)[span_1](end_span)
bool out_number(int n)[span_2](start_span)[span_2](end_span)[span_3](start_span)[span_3](end_span)
{
// ================================== для блок-схемы[span_4](start_span)[span_4](end_span)
if (n % 2 != 0) // Проверка: если остаток от деления на 2 не равен 0[span_5](start_span)[span_5](end_span)[span_6](start_span)[span_6](end_span)
return true; // Функция возвращает истину (число нечетное)[span_7](start_span)[span_7](end_span)
else
return false; // Иначе возвращается ложь (число четное)[span_8](start_span)[span_8](end_span)
// ================================== краткий вариант[span_9](start_span)[span_9](end_span)
// return (n % 2 != 0);[span_10](start_span)[span_10](end_span)
}
int main()[span_11](start_span)[span_11](end_span)
{
// Считает кол-во нечетных чисел, перемножает все нечетные и по заданию находит позицию 4-го числа[span_12](start_span)[span_12](end_span)
// Предусловие: последовательность целых чисел вводится пользователем через пробел[span_13](start_span)[span_13](end_span)
// Постусловие: нахождение количества, произведения нечетных чисел и номера четвертого нечетного числа[span_14](start_span)[span_14](end_span)
setlocale(LC_ALL, "Russian"); // Включение вывода русского текста в консоли Windows[span_15](start_span)[span_15](end_span)
int n; // Объявление переменной для считывания текущего числа[span_16](start_span)[span_16](end_span)
int k = 0; // Счетчик количества найденных нечетных чисел[span_17](start_span)[span_17](end_span)
long long P = 1;// Переменная для вычисления произведения нечетных чисел[span_18](start_span)[span_18](end_span)
int j = 0; // Счетчик общего порядкового номера числа в последовательности[span_19](start_span)[span_19](end_span)
int Num = 0; // Переменная для хранения номера четвертого нечетного числа[span_20](start_span)[span_20](end_span)
cout << "Введите числа через пробел, по окончании нажмите enter:" << endl; // Вывод подсказки пользователю[span_21](start_span)[span_21](end_span)
do // Используем do-while, чтобы цикл гарантированно сработал минимум один раз[span_22](start_span)[span_22](end_span)
{
cin >> n; // Считывание очередного числа из консоли через cin[span_23](start_span)[span_23](end_span)
j++; // Увеличение общего счетчика позиции текущего числа[span_24](start_span)[span_24](end_span)
// Проверка условия через вызов нашей логической функции[span_25](start_span)[span_25](end_span)[span_26](start_span)[span_26](end_span)
if (out_number(n))[span_27](start_span)[span_27](end_span)[span_28](start_span)[span_28](end_span)
{
k++; // Увеличение счетчика нечетных чисел[span_29](start_span)[span_29](end_span)
P *= n; // Накопление произведения нечетных чисел[span_30](start_span)[span_30](end_span)
if (k == 4) // Проверка: если встретилось четвертое нечетное число[span_31](start_span)[span_31](end_span)
{
Num = j; // Запоминаем его порядковый номер в общей последовательности[span_32](start_span)[span_32](end_span)
}
}
} while (cin.peek() != '\n'); // Повторять цикл, пока следующий символ в потоке не Enter[span_33](start_span)[span_33](end_span)
if (k > 0) // Если в последовательности было хотя бы одно нечетное число[span_34](start_span)[span_34](end_span)
{
cout << "Количество нечетных чисел: " << k << ", произведение нечетных чисел: " << P << endl;[span_35](start_span)[span_35](end_span)
}
else // Если нечетных чисел не оказалось вовсе[span_36](start_span)[span_36](end_span)
{
cout << "Нечетных чисел в последовательности нет." << endl;[span_37](start_span)[span_37](end_span)
}
if (Num != 0) // Если четвертое нечетное число было найдено[span_38](start_span)[span_38](end_span)
{
cout << "Номер в последовательности четвертого нечетного числа: " << Num << endl;[span_39](start_span)[span_39](end_span)
}
else // Если найдено меньше 4 нечетных чисел[span_40](start_span)[span_40](end_span)
{
cout << "Нечетных чисел меньше 4" << endl;[span_41](start_span)[span_41](end_span)
}
system("pause"); // Задержка экрана консоли перед закрытием[span_42](start_span)[span_42](end_span)
return 0; // Успешное завершение программы
}