Программу на с++ Есть список игрушек, которые имеются в n детских садах. Определи?

Программу на с++ Есть список игрушек, которые имеются в n детских садах. Определи??ь игрушки из списка: которых нет ни в одном из детсадов; которые есть в каждом из детсадов.
Гость
Ответ(ы) на вопрос:
Гость
Лови решение, допилил.... #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 (Пожарная машина), Для закрытия данного окна нажмите <ВВОД>...
Не нашли ответ?
Ответить на вопрос
Похожие вопросы