М
Молодежь
К
Компьютеры-и-электроника
Д
Дом-и-сад
С
Стиль-и-уход-за-собой
П
Праздники-и-традиции
Т
Транспорт
П
Путешествия
С
Семейная-жизнь
Ф
Философия-и-религия
Б
Без категории
М
Мир-работы
Х
Хобби-и-рукоделие
И
Искусство-и-развлечения
В
Взаимоотношения
З
Здоровье
К
Кулинария-и-гостеприимство
Ф
Финансы-и-бизнес
П
Питомцы-и-животные
О
Образование
О
Образование-и-коммуникации
dashameluhova95
dashameluhova95
28.01.2023 06:09 •  Информатика

Решите С++ В ПропоГраде проходит великолепный фестиваль научных знаний. Они решили пригласить участников к себе на центральную площадь. Вам было поручено сделать систему распознавания билетов у групп посетителей. Билет является подлинным, если он нечетный. Необходимо из набора удалить все билеты, не проходящие по этому критерию.

Формат входных данных
В первой строке вводится N - количество билетов

Во второй строке вводятся сами номера билетов

Формат выходных данных
Если все билеты подлинные, то вывести "ALL TICKETS ARE CORRECT"

В противном случае в первой строке вывести "WRONG", во второй количество непройденных билетов. В третьей строке вывести номера билетов, которые .

Примечания
all_of , remove_if and erase к вашим услугам :)

Напоминаем, что remove_if требует в качестве аргументов начало и конец диапазона, а также функцию, по которой он будет определять - удалить элемент или нет.

входные данные выходные данные
6
123 323 111 231 999 459
ALL TICKETS ARE CORRECT
9
123 323 24 111 122 231 982 999 459
WRONG
3
123 323 111 231 999 459

👇
Ответ:
Potterhead01
Potterhead01
28.01.2023
Хорошо, давайте решим эту задачу шаг за шагом.

1. Сначала мы должны получить входные данные: количество билетов и сами номера билетов. Для этого мы используем std::cin.

```c++
int n; // количество билетов
std::cin >> n;

std::vector tickets(n); // номера билетов
for (int i = 0; i < n; i++) {
std::cin >> tickets[i];
}
```

2. Далее мы должны проверить каждый билет на четность и удалить те, которые являются четными. Мы можем использовать алгоритм remove_if и лямбда-функцию в качестве аргументов.

```c++
tickets.erase(std::remove_if(tickets.begin(), tickets.end(), [](int ticket){
return ticket % 2 == 0; // возвращает true, если билет четный
}), tickets.end());
```

3. Теперь мы должны вывести результат. Если все билеты были удалены, то выводим "ALL TICKETS ARE CORRECT". В противном случае выводим "WRONG", количество непройденных билетов и сами номера этих билетов.

```c++
if (tickets.empty()) {
std::cout << "ALL TICKETS ARE CORRECT" << std::endl;
} else {
std::cout << "WRONG" << std::endl;
std::cout << tickets.size() << std::endl;
for (int i = 0; i < tickets.size(); i++) {
std::cout << tickets[i] << " ";
}
std::cout << std::endl;
}
```

Вот полный код, который решает задачу:

```c++
#include
#include
#include

int main() {
int n; // количество билетов
std::cin >> n;

std::vector tickets(n); // номера билетов
for (int i = 0; i < n; i++) {
std::cin >> tickets[i];
}

tickets.erase(std::remove_if(tickets.begin(), tickets.end(), [](int ticket){
return ticket % 2 == 0; // возвращает true, если билет четный
}), tickets.end());

if (tickets.empty()) {
std::cout << "ALL TICKETS ARE CORRECT" << std::endl;
} else {
std::cout << "WRONG" << std::endl;
std::cout << tickets.size() << std::endl;
for (int i = 0; i < tickets.size(); i++) {
std::cout << tickets[i] << " ";
}
std::cout << std::endl;
}

return 0;
}
```

Надеюсь, это поможет вам понять, как решить задачу и объяснить это школьнику.
4,4(29 оценок)
Проверить ответ в нейросети
Новые ответы от MOGZ: Информатика
logo
Вход Регистрация
Что ты хочешь узнать?
Спроси Mozg
Открыть лучший ответ