Программу на с++ есть список игрушек, которые имеются в n детских садах. определить игрушки из списка: которых нет ни в одном из детсадов; которые есть в каждом из детсадов.
248
454
Ответы на вопрос:
Лови решение, #include < iostream> #include < vector> #include < string> using namespace std; int main() { /* детский сад: id - номер детского сада; toylist - список игрушек в детском саду */ struct house { unsigned id; vector< unsigned> toylist; }; /* игрушка: id - уникальный номер игрушки; name - название игрушки */ struct toy { unsigned id; string name; }; // объявляем необходимые переменные vector< house> houses; vector< toy> toys; toy c_toy; house c_house; vector< unsigned> t_list; // заполняем массив игрушек char ch='y'; unsigned toy_id=1; string toy_name; do { cout < < toy_id < < "-я игрушка: "; getline(cin, toy_name); c_toy.id=toy_id; c_toy.name=toy_name; toys.push_back(c_toy); cout < < "добавить ещё одну игрушку? (y/n): "; cin > > ch; cin.ignore(); if((ch=='y') || (ch=='y')) toy_id++; } while((ch=='y') || (ch=='y')); // выводим на экран список всех игрушек for(unsigned i=0; i< toys.size(); ++i) { cout < < "игрушка " < < toys[i].id < < " - " < < toys[i].name < < endl; } // заполняем данные по детским unsigned house_id=1; unsigned toy_num; do { cout < < house_id < < "-й детский сад. введите номера игрушек: " < < endl; // заполняем детский сад игрушками do { cin > > toy_num; t_list.push_back(toy_num); cout < < "добавить еще? (y/n): "; cin > > ch; cin.ignore(); } while((ch=='y') || (ch=='y')); c_house.id=house_id; c_house.toylist = t_list; t_list.clear(); houses.push_back(c_house); cout < < "добавить ещё детский сад? (y/n): "; cin > > ch; if((ch=='y') || (ch=='y')) house_id++; } while((ch=='y') || (ch=='y')); // выводим данные по всем детским for(unsigned i=0; i< houses.size(); ++i) { cout < < " детсад √" < < houses[i].id < < " - игрушки: "; for(unsigned j=0; j< houses[i].toylist.size(); ++j) cout < < houses[i].toylist[j] < < " "; cout < < endl; } // ищем игрушки, которые есть во всех детских садах unsigned t; bool founded = false; vector< unsigned> t1, t2; for(unsigned i=0; i< toys.size(); i++) { t=toys[i].id; for(unsigned j=0; j< houses.size(); j++) { for(unsigned k=0; k< houses[j].toylist.size(); k++) { if(t==houses[j].toylist[k]) founded = true; } if(founded) t1.push_back(t); founded = false; } unsigned h=houses.size(); if(t1.size()==h) t2.push_back(t); t1.clear(); } cout < < "игрушки, которые есть во всех детских садах: " < < endl; for(unsigned i=0; i< t2.size(); ++i) for(unsigned j=0; j< toys.size(); ++j) if(t2[i]==toys[j].id) cout < < t2[i] < < " (" < < toys[j].name < < "), "; cout < < endl; // ищем игрушки, которых нет ни в одном детском саду t1.clear(); t2.clear(); founded=false; for(unsigned i=0; i< toys.size(); i++) { t=toys[i].id; for(unsigned j=0; j< houses.size(); j++) { for(unsigned k=0; k< houses[j].toylist.size(); k++) { if(t==houses[j].toylist[k]) founded = true; } if(! founded) t1.push_back(t); founded = false; } unsigned h=houses.size(); if(t1.size()==h) t2.push_back(t); t1.clear(); } cout < < "игрушки, которых нет ни в одном детском саду: " < < endl; for(unsigned i=0; i< t2.size(); ++i) for(unsigned j=0; j< toys.size(); ++j) if(t2[i]==toys[j].id) cout < < t2[i] < < " (" < < toys[j].name < < "), "; cout < < endl; return 0; } тестовый прогон: 1-я игрушка: барабан добавить ещё одну игрушку? (y/n): y 2-я игрушка: кукла барби добавить ещё одну игрушку? (y/n): y 3-я игрушка: вертолет добавить ещё одну игрушку? (y/n): y 4-я игрушка: конструктор добавить ещё одну игрушку? (y/n): y 5-я игрушка: железная дорога добавить ещё одну игрушку? (y/n): y 6-я игрушка: флейта добавить ещё одну игрушку? (y/n): y 7-я игрушка: слон добавить ещё одну игрушку? (y/n): y 8-я игрушка: самосвал добавить ещё одну игрушку? (y/n): y 9-я игрушка: кран добавить ещё одну игрушку? (y/n): y 10-я игрушка: машина добавить ещё одну игрушку? (y/n): n игрушка 1 - барабан игрушка 2 - кукла барби игрушка 3 - вертолет игрушка 4 - конструктор игрушка 5 - железная дорога игрушка 6 - флейта игрушка 7 - слон игрушка 8 - самосвал игрушка 9 - кран игрушка 10 - машина 1-й детский сад. введите номера игрушек: 1 добавить еще? (y/n): y 2 добавить еще? (y/n): y 3 добавить еще? (y/n): y 4 добавить еще? (y/n): y 5 добавить еще? (y/n): n добавить ещё детский сад? (y/n): y 2-й детский сад. введите номера игрушек: 2 добавить еще? (y/n): y 3 добавить еще? (y/n): y 4 добавить еще? (y/n): n добавить ещё детский сад? (y/n): y 3-й детский сад. введите номера игрушек: 1 добавить еще? (y/n): y 2 добавить еще? (y/n): y 4 добавить еще? (y/n): y 5 добавить еще? (y/n): n добавить ещё детский сад? (y/n): y 4-й детский сад. введите номера игрушек: 2 добавить еще? (y/n): y 3 добавить еще? (y/n): y 4 добавить еще? (y/n): y 5 добавить еще? (y/n): y 1 добавить еще? (y/n): y 6 добавить еще? (y/n): n добавить ещё детский сад? (y/n): n детсад √1 - игрушки: 1 2 3 4 5 детсад √2 - игрушки: 2 3 4 детсад √3 - игрушки: 1 2 4 5 детсад √4 - игрушки: 2 3 4 5 1 6 игрушки, которые есть во всех детских садах: 2 (кукла барби), 4 (конструктор), игрушки, которых нет ни в одном детском саду: 7 (слон), 8 (самосвал), 9 (кран), 10 ( машина), для закрытия данного окна нажмите < ввод>
Реши свою проблему, спроси otvet5GPT
-
Быстро
Мгновенный ответ на твой вопрос -
Точно
Бот обладает знаниями во всех сферах -
Бесплатно
Задай вопрос и получи ответ бесплатно
Популярно: Информатика
-
Yar4ik0322.06.2020 23:14
-
олька999201.08.2022 15:09
-
krusher7720.09.2020 07:09
-
derugaboris200p08t6d07.08.2022 02:10
-
nastyakopylova717.11.2020 01:09
-
kisasay112307.02.2020 00:53
-
moscow150613.06.2022 05:00
-
xenia0000027.10.2022 07:57
-
Polinaovch30.01.2023 23:54
-
kolikova0520.11.2022 05:22
Есть вопросы?
-
Как otvet5GPT работает?
otvet5GPT использует большую языковую модель вместе с базой данных GPT для обеспечения высококачественных образовательных результатов. otvet5GPT действует как доступный академический ресурс вне класса. -
Сколько это стоит?
Проект находиться на стадии тестирования и все услуги бесплатны. -
Могу ли я использовать otvet5GPT в школе?
Конечно! Нейросеть может помочь вам делать конспекты лекций, придумывать идеи в классе и многое другое! -
В чем отличия от ChatGPT?
otvet5GPT черпает академические источники из собственной базы данных и предназначен специально для студентов. otvet5GPT также адаптируется к вашему стилю письма, предоставляя ряд образовательных инструментов, предназначенных для улучшения обучения.