2 / 2 / 1
Регистрация: 18.03.2014
Сообщений: 147
1

Поиск элементов в массивах

14.01.2015, 18:28. Показов 705. Ответов 3
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Задача интересная!)

есть три массива
(1)
это массив кафедр: {Fivt,Fivt,Fivt,Fivt,Fivt,Fivt,Itf,Itf,Itf,Wf,Wf,Wf}
(2)
это массив аудиторий: {526,526,526,522,518,518,514,514,514,500,518,522}
(3)
это массив компьютеров: {4,5,6,1,2,3,7,8,9,12,10,11}

то есть каждой аудитории соответствует определенные компьютеры и кафедры

C++
1
2
3
{Fivt, Fivt, Fivt,  Fivt, Fivt , Fivt,  Itf,   Itf,   Itf,  Wf,   Wf,  Wf}
{526, 526, 526,  522,  518,  518, 514, 514, 514,  500, 518, 522}
{4,     5,     6,     1,    2,      3,     7,    8,    9,    12,   10,  11}
а задача состоит в том чтобы выдать список аудиторий, которые могут
принадлежать нескольким факультетам.

то есть что то вроде этого:
----------------------------------------------------
аудитория 526, Фак: Fivt, компьютеры: 4,5,6
-----------------------------------------------------
аудитория 522, Фак: Fivt,Wf, компьютеры: 1,11
------------------------------------------------------
аудитория 518, Фак: Fivt,Wf, компьютеры: 2,3,10

но в голову что то ничего не лезет, как сделать подобный фильтр?, если можно напишите программу пожалуйста.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
14.01.2015, 18:28
Ответы с готовыми решениями:

Поиск элементов в одномерных массивах
Даны целые числа N и B. Задать N элементов одномерного массива. Вывести минимальный из тех...

Поиск одинаковых элементов в 2 массивах
Добрый вечер ) Немного не разбираюсь как работать с 2 массивами , подскажите пожалуйста , заранее...

Поиск элементов в одномерных массивах
Дан целочисленный массив размера N. Найти количество различных элементов в данном массиве.

Поиск одинаковых элементов в 2 массивах
Всем привет) Как можно организовать поиск одинаковых элементов в 2 массивах? (сам цикл...

3
Заблокирован
14.01.2015, 21:11 2
Kronos0041, идете по массиву аудиторий, если номера аудиторий равны, то смотрите на массив кафедр и номера компьютеров. Для вывода информации без повторений в лексикографическом порядке можно использовать множество из stl.
0
2 / 2 / 1
Регистрация: 18.03.2014
Сообщений: 147
14.01.2015, 21:18  [ТС] 3
Цитата Сообщение от rocknrolla1 Посмотреть сообщение
Kronos0041, идете по массиву аудиторий, если номера аудиторий равны, то смотрите на массив кафедр и номера компьютеров. Для вывода информации без повторений в лексикографическом порядке можно использовать множество из stl.
не мог бы написать, а то с stl не сталкивался еще
0
365 / 321 / 219
Регистрация: 21.02.2013
Сообщений: 756
15.01.2015, 19:27 4
ну вот так можно, хотя могут быть и проще варианты:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
#include <iostream>
#include <string>
#include <vector>
#include <algorithm>
using namespace std;
 
struct Str{
vector<string> kaf;
vector<int> komp;
int aud;
Str(string & str, int & a, int & n){ kaf.push_back(str); aud = a; komp.push_back(n);}
 
void Vpush_back(string & str, int& n)
{
    if (std::find(kaf.begin(), kaf.end(), str.c_str()) == kaf.end())
    {
        kaf.push_back(str);
    }
    if (std::find(komp.begin(), komp.end(), n) == komp.end())
    {
        komp.push_back(n);
    }
}
 
};
int main(int argc, char* argv[])
{
  string kafedr[12]= {"Fivt", "Fivt", "Fivt",  "Fivt", "Fivt" , "Fivt",  "Itf",   "Itf",   "Itf",  "Wf",   "Wf",  "Wf"};
   int audit[12]= {526, 526, 526,  522,  518,  518, 514, 514, 514,  500, 518, 522};
    int komp[12]={4,     5,     6,     1,    2,      3,     7,    8,    9,    12,   10,  11};
   bool flag;
    vector<Str> myvec;
    vector<Str>::size_type it;
    myvec.push_back(Str(kafedr[0], audit[0], komp[0]));
    for(int i = 1; i != 12; i++)
    {
        flag = true;
 
        for( it = 0; it != myvec.size(); it++)
        {
            if(myvec[it].aud == audit[i])
            {
                flag = false;
                break;
            }
 
        }
        if(!flag)
        {
            myvec[it].Vpush_back(kafedr[i], komp[i]);
        }
        else
        myvec.push_back(Str(kafedr[i], audit[i], komp[i]));
 
 
    }
    for(vector<Str>::size_type it = 0; it != myvec.size(); it++)
    {
        cout << "auditoriya: " << myvec[it].aud <<
        " Fakultet: ";
        for(vector<string>::size_type j = 0; j != myvec[it].kaf.size(); j++)
        {
            cout << myvec[it].kaf[j] << ",";
        }
        cout << " Komp: ";
        for(vector<int>::size_type k = 0; k != myvec[it].komp.size(); k++)
        {
            cout << myvec[it].komp[k] << ",";
        }
        cout << endl;
 
    }
 
}
1
15.01.2015, 19:27
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
15.01.2015, 19:27
Помогаю со студенческими работами здесь

Поиск одинаковых элементов в массивах!
Даны 2 массива(x,y) cоставить новый массив (z), из тех элементов массива (x) которые не входят в...

Поиск элементов в одномерных массивах
Помогите с задачей) Дано: целые числа N,C,B. Задать N элементов одномерного массива. Вывести...

Поиск элементов в одномерных массивах
Даны целые числа N и B. Задать N элементов одномерного массива. Вывести минимальный из тех...

Поиск положительного элемента в массивах-функция
Задание: Даны прямоугольные матрицы А и В. Поменять местами первые положительные элементы матрицы....


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2023, CyberForum.ru