Загрузка данных


#include <stdio.h>      // Подключение библиотеки для стандартного ввода/вывода
#include <stdlib.h>     // Подключение библиотеки для вызова system("pause")
#include <locale.h>     // Подключение библиотеки для локализации текста

// Предусловия: 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;    // Переменная для хранения номера четвертого нечетного числа

    printf("Введите числа через пробел, по окончании нажмите enter:\n"); // Вывод подсказки пользователю

    do // Используем do-while, чтобы цикл гарантированно сработал минимум один раз
    {
        scanf("%d", &n); // Считывание очередного числа из консоли
        j++;             // Увеличение общего счетчика позиции текущего числа

        // Проверка условия через вызов нашей логической функции
        if (out_number(n))
        {
            k++;    // Увеличение счетчика нечетных чисел
            P *= n; // Накопление произведения нечетных чисел

            if (k == 4) // Проверка: если встретилось четвертое нечетное число
            {
                Num = j; // Запоминаем его порядковый номер в общей последовательности
            }
        }
    } while (getchar() != '\n'); // Повторять цикл, пока пользователь не нажмет Enter

    if (k > 0) // Если в последовательности было хотя бы одно нечетное число
    {
        printf("Количество нечетных чисел: %d, произведение нечетных чисел: %lld\n", k, P);
    }
    else // Если нечетных чисел не оказалось вовсе
    {
        printf("Нечетных чисел в последовательности нет.\n");
    }

    if (Num != 0) // Если четвертое нечетное число было найдено
    {
        printf("Номер в последовательности четвертого нечетного числа: %d\n", Num);
    }
    else // Если найдено меньше 4 нечетных чисел
    {
        printf("Нечетных чисел меньше 4\n");
    }

    system("pause"); // Задержка экрана консоли перед закрытием
    return 0;        // Успешное завершение программы
}