Есть ответ 👍

Программу на с++ есть список игрушек, которые имеются в n детских садах. определить игрушки из списка: которых нет ни в одном из детсадов; которые есть в каждом из детсадов.

248
454
Посмотреть ответы 2

Ответы на вопрос:

xmistick
4,7(38 оценок)

Лови решение, #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 ( машина), для закрытия данного окна нажмите < ввод>

Врезультате с будет ровно 7  

Реши свою проблему, спроси otvet5GPT

  • Быстро
    Мгновенный ответ на твой вопрос
  • Точно
    Бот обладает знаниями во всех сферах
  • Бесплатно
    Задай вопрос и получи ответ бесплатно

Популярно: Информатика

Caktus Image

Есть вопросы?

  • Как otvet5GPT работает?

    otvet5GPT использует большую языковую модель вместе с базой данных GPT для обеспечения высококачественных образовательных результатов. otvet5GPT действует как доступный академический ресурс вне класса.
  • Сколько это стоит?

    Проект находиться на стадии тестирования и все услуги бесплатны.
  • Могу ли я использовать otvet5GPT в школе?

    Конечно! Нейросеть может помочь вам делать конспекты лекций, придумывать идеи в классе и многое другое!
  • В чем отличия от ChatGPT?

    otvet5GPT черпает академические источники из собственной базы данных и предназначен специально для студентов. otvet5GPT также адаптируется к вашему стилю письма, предоставляя ряд образовательных инструментов, предназначенных для улучшения обучения.

Подпишись на наш телеграмм канал

GTP TOP NEWS