Форум программистов, компьютерный форум CyberForum.ru

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
ASUV
0 / 0 / 0
Регистрация: 10.12.2012
Сообщений: 10
#1

Найти элементы, которые встречаются во всех трех массивах - C++

11.12.2012, 18:01. Просмотров 640. Ответов 10
Метки нет (Все метки)

Заданы три одномерных массива содержащие по n элементов. Написать
программу, которая находит те элементы, которые встречаются одновременно во
всех трех массивах.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
11.12.2012, 18:01     Найти элементы, которые встречаются во всех трех массивах
Посмотрите здесь:

Найти все элементы массива, которые встречаются в нем не более одного раза C++
C++ Элементы массива, которые встречаются только один раз
C++ Из массива А удалить все элементы, которые встречаются в В ровно 2 раза
C++ Из массива А удалить все элементы, которые встречаются в В ровно 2 раза
C++ дописать ( Из массива А удалить все элементы, которые встречаются в В ровно 2 раза. Из В переписать в С те элементы, которые совпадают с оставшимися)
Создать новый файл D из чисел, которые встречаются во всех трех файлах C++
Даны 3 массива. Выдать элементы, которые встречаются только в одном из них C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Maxtron
 Аватар для Maxtron
47 / 47 / 2
Регистрация: 17.11.2012
Сообщений: 225
Записей в блоге: 1
11.12.2012, 18:08     Найти элементы, которые встречаются во всех трех массивах #2
Можно сделать с помощью вложенных циклов for, сравнивая последовательно все элементы трех массивов.
David Sylva
 Аватар для David Sylva
1283 / 945 / 51
Регистрация: 17.05.2012
Сообщений: 2,687
11.12.2012, 18:21     Найти элементы, которые встречаются во всех трех массивах #3
Покажи код, поможем разобраться.
ASUV
0 / 0 / 0
Регистрация: 10.12.2012
Сообщений: 10
11.12.2012, 19:02  [ТС]     Найти элементы, которые встречаются во всех трех массивах #4
да вот что и проблема я не знаю как это в коде записать
Maxtron
 Аватар для Maxtron
47 / 47 / 2
Регистрация: 17.11.2012
Сообщений: 225
Записей в блоге: 1
11.12.2012, 19:24     Найти элементы, которые встречаются во всех трех массивах #5
C++
1
2
3
4
5
6
7
8
9
10
11
#include <iostream.h>
 
void main()
{
    int mas[10], mas2[10], mas3[10];
    for(int i = 0; i < 10; i++)
        for(int j = 0; j < 10; j++)
            for(int m = 0; m < 10; m++)
                       if(mas[i] == mas[j] && mas[i] == mas[m] && mas[j] == mas[m])
                        cout << mas[i] << " == " << mas[j] << " == " << mas[m] << '\n';
}
Массивы, конечно, нужно инициализировать значениями.
ASUV
0 / 0 / 0
Регистрация: 10.12.2012
Сообщений: 10
11.12.2012, 20:09  [ТС]     Найти элементы, которые встречаются во всех трех массивах #6
что она вобще делает она даже число элементов не выводит
Deviaphan
Делаю внезапно и красиво
Эксперт C++
 Аватар для Deviaphan
1285 / 1219 / 50
Регистрация: 22.03.2011
Сообщений: 3,744
11.12.2012, 20:19     Найти элементы, которые встречаются во всех трех массивах #7
Множества уже проходили?
Создаёшь множества из массивов. Затем перебираешь все элементы второго множества, удаляя из первого множества элементы, которых нет во втором. Делаешь то же самое для оставшихся элементов первого множества с третьим множеством. Таким образом, в первом множестве останутся только те элементы, которые есть во всех трёх массивах.

Добавлено через 1 минуту
Но самым эффективным способом будет сортировка всех трёх массивов и поиск одинаковых элементов. Но там придётся асинхронно изменять три итератора.
ASUV
0 / 0 / 0
Регистрация: 10.12.2012
Сообщений: 10
11.12.2012, 21:06  [ТС]     Найти элементы, которые встречаются во всех трех массивах #8
const int N = 10;
int main()
{
int mass[N]={3, 3, 2, 2, 1, 1, 7, 7, 9, 9}; // Обявляем массив.
int list[N]; /* Обявляем массив, куда будут заносится равные, но наиб. встречающиеся элементы.
Например, если задать массив из 5 элементов - 2, 2, 3, 3, 1, то вывести 2 и 3.
*/
int i, j, count, maxcount, num, len;
printf("\n Massiv iz chisel ot 1 do 10: \n");
for(i=0; i<N; i++)
{ printf("\n Massiv[%d] = %d. ", i, mass[i]); }

len=0; maxcount=1; num=0; // Устанавливаем значения трех переменных по умолчанию.
for (i=0; i<N; i++) // Перебираем все элементы массива.
{ count=0; // Счетчик в 0.
for (j=i; j<N; j++) // Перебираем все элементы от i до конца.
if (mass[i] == mass[j]) // Если элемент [i] совпадает с одним из последующих [j],
{ count++; } // то увеличиваем значение счетчика.
if (count==maxcount) // Если очередное число встречается maxcount раз,
{ list[len]=i; // То занесём его в список.
len++; } // Увеличиваем значение переменной.
if (count > maxcount) // Если число больше максимального,
{ maxcount = count; // тогда оно максимальное.
num = i; // Присаваеиваем элемент массива в новую переменную
len=1; // Разрушаем прежний список...
list[0]=i; } // и формируем новый.
}
printf("\n \n Povtor. chisla:");
for(i=0; i<len; i++)
{ printf(" %d.", mass[list[i]]); } // Выводим значения часто повторяющийся элементов.

getch();
return 0;
}
Maxtron
 Аватар для Maxtron
47 / 47 / 2
Регистрация: 17.11.2012
Сообщений: 225
Записей в блоге: 1
11.12.2012, 21:10     Найти элементы, которые встречаются во всех трех массивах #9
Цитата Сообщение от ASUV Посмотреть сообщение
что она вобще делает она даже число элементов не выводит
а где писалось, что это нужно? пишите тогда сразу точное описание того, что хотите получить. программа делает то, что вы писали в своём первом посте.
ASUV
0 / 0 / 0
Регистрация: 10.12.2012
Сообщений: 10
11.12.2012, 21:23  [ТС]     Найти элементы, которые встречаются во всех трех массивах #10
ну она не выводит часто встречающиеся элементы
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
11.12.2012, 21:36     Найти элементы, которые встречаются во всех трех массивах
Еще ссылки по теме:

C++ Напишите программу для нахождения всех слов, которые встречаются в каждом из двух предложений.
C++ Дана символьная строка. Вывести на экран только те символы, которые встречаются в ней более трех раз, для каждого из эти
Найти элементы, которые встречаются одновременно в трёх массивах C++
C++ Вывести на экран элементы первого массива, которые не встречаются во втором.
C++ Перенести в массив С те элементы массива А, которые не встречаются в массиве В

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

Или воспользуйтесь поиском по форуму:
Maxtron
 Аватар для Maxtron
47 / 47 / 2
Регистрация: 17.11.2012
Сообщений: 225
Записей в блоге: 1
11.12.2012, 21:36     Найти элементы, которые встречаются во всех трех массивах #11
Цитата Сообщение от ASUV Посмотреть сообщение
ну она не выводит часто встречающиеся элементы
инициализируйте массивы, и, если каждый из массивов содержит одинаковый элемент, то выведет он этот элемент
Yandex
Объявления
11.12.2012, 21:36     Найти элементы, которые встречаются во всех трех массивах
Ответ Создать тему
Опции темы

Текущее время: 20:35. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru