Новая Школа - онлайн-школа подготовки к ЕГЭ
Задача Задача №3191046
А
Аноним
11 мая 2025 12:57 · публичный вопрос
А
Аноним

Рограммирование на C++ 2. Реши эти задачи и получи свою пятёрку! 2.1Непродуктивные дни - / 100 Проверяется автоматически стандартный ввод стандартный вывод 2 секунды 64 мегабайта…

Запрос пользователя

Рограммирование на C++ 2. Реши эти задачи и получи свою пятёрку! 2.1Непродуктивные дни - / 100 Проверяется автоматически стандартный ввод стандартный вывод 2 секунды 64 мегабайта Условие Мистер Смитт каждый день записывает в свой дневник, сколько дел он выполнил за этот день. Также он поставил себе цель - выполнять не меньше пяти дел в день. После того, как проходит месяц, и он смотрит, в какие дни он не достиг поставленной цели, а если таких дней не было, то он считает, что в этом месяце он отлично поработал. Напиши программу, которая выводит номера дней, в которые не была достигнута цель, либо выводит фразу "Great job!", если таких дней не было Формат входных данных В первой строке - натуральное число n ≤ 100 - количество дней в прошедшем месяце В следующей строке - n целых чисел, каждое число неотрицательное и не превышает 105 Формат выходных данных Номера дней (в одной строке через пробел), в которые не была достигнута цель, либо фраза "Great job!", если таких дней не было

Ответ нейросети
11 мая 2025 12:57

Давайте подробно разберем задачу и решим её на языке C++.

Задача:
Нужно определить, в какие дни месяца количество выполненных дел было меньше 5. Для этого у нас есть:

  • Количество дней в месяце n.
  • Массив чисел — количество дел, выполненных в каждый из этих дней.

Требуется вывести номера дней, в которые количество дел было меньше 5, либо вывести "Great job!", если таких дней не было.


Шаги решения:

  1. Считать число n.
  2. Считать массив из n целых чисел.
  3. Пройтись по всему массиву и проверить каждый день:
    • Если дел выполнено менее 5, запоминаем номер этого дня.
  4. После проверки, если есть такие дни, вывести их номеров через пробел.
  5. Если таких дней не оказалось, вывести "Great job!".

Пример:

Ввод:

7
3 5 4 6 2 7 1

Вывод:

1 3 5 7

Потому что в эти дни выполнено менее 5 дел.


Реализация на C++:

#include <iostream>
#include <vector>

int main() {
    int n;
    std::cin >> n; // Считываем количество дней
    std::vector<int> tasks(n);

    // Считываем количество дел за каждый день
    for (int i = 0; i < n; ++i) {
        std::cin >> tasks[i];
    }

    // Вектор для хранения номеров дней, где не достигнута цель
    std::vector<int> bad_days;

    // Проверяем каждый день
    for (int i = 0; i < n; ++i) {
        if (tasks[i] < 5) {
            // Нумерация дней с 1
            bad_days.push_back(i + 1);
        }
    }

    // Выводим результат
    if (bad_days.empty()) {
        std::cout << "Great job!" << std::endl;
    } else {
        for (size_t i = 0; i < bad_days.size(); ++i) {
            std::cout << bad_days[i];
            if (i != bad_days.size() - 1) {
                std::cout << " ";
            }
        }
        std::cout << std::endl;
    }

    return 0;
}

Если нужно, я могу объяснить каждую строку кода более подробно!