Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.85/13: Рейтинг темы: голосов - 13, средняя оценка - 4.85
19 / 19 / 5
Регистрация: 03.11.2011
Сообщений: 80

Напечатать различные числа, встречающиеся в обеих последовательностях

22.04.2012, 11:37. Показов 2449. Ответов 7
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Помогите составить программу:
Даны две последовательности из целых чисел: a1, ..., an; b1, ..., bn. Напечатать различные числа, встречающиеся в обеих последовательностях.
Тема: Одномерные массивы

Вот мой вариант, но здесь печатаются не различные числа.
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
#include <iostream>
using namespace std;
int main()
{
    setlocale (LC_ALL, "rus");
    int a[100], b[100], n, m, i, j;
    cout << "Введите количество чисел 1-й последовательности\n";
    cin >> n;
    cout << "Введите количество чисел 2-й последовательности\n";
    cin >> m;
    cout << "Введите числа 1-й последовательности\n";
    for (i=0; i<n; i++)
    {
        cin >> a[i];
    }
    cout << "Введите числа 2-й последовательности\n";
    for (j=0; j<m; j++)
    {
        cin >> b[j];
    }
    cout << "Числа, встречающиеся в обеих последовательностях:\n";
    for (i=0; i<n; i++)
        for (j=0; j<m; j++)
            if (a[i]==b[j])
                        cout << a[i] << " ";
        system("pause");
    return 0;
}
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
22.04.2012, 11:37
Ответы с готовыми решениями:

Напечатать различные числа, встречающиеся в одной последовательности, но не встречающиеся в другой
На входе 2 последовательности напечатать различные числа встречающиеся в одной но не встречающиеся в другой пример: input ...

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

Вывести только различные встречающиеся отрицательные действительные числа
Программа с комментарием и с использованием только библиотеки &lt;stdio.h&gt; Ввести строку. Вывести только различные встречающиеся...

7
 Аватар для Toshkarik
1181 / 894 / 94
Регистрация: 03.08.2011
Сообщений: 2,461
22.04.2012, 12:00
C++
1
2
3
4
for (i=0; i<n; i++)
        for (j=i + 1; j<m; j++)
            if (a[i]==b[j])
                        cout << a[i] << " ";
ADD: Хотя нет, вроде не то, поспешил.

Добавлено через 5 минут
Различные имеется ввиду, что они входят всего один раз в каждую последовательность?
0
19 / 19 / 5
Регистрация: 03.11.2011
Сообщений: 80
22.04.2012, 12:01  [ТС]
Цитата Сообщение от Toshkarik Посмотреть сообщение
C++
1
2
3
4
for (i=0; i<n; i++)
        for (j=i + 1; j<m; j++)
            if (a[i]==b[j])
                        cout << a[i] << " ";
ADD: Хотя нет, вроде не то, поспешил.

Добавлено через 5 минут
Различные имеется ввиду, что они входят всего один раз в каждую последовательность?
Да, именно так.
0
 Аватар для Toshkarik
1181 / 894 / 94
Регистрация: 03.08.2011
Сообщений: 2,461
22.04.2012, 12:52
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
bool flag;
   //......
   for ( int i = 0; i < an; i++ ) {
      flag = true;
      
      for ( int j = 0; j < an; j++ )
         if ( a[ i ] == a[ j ] && i != j )
            flag = false;
            
      if ( flag ) {
         flag = false;
         
         for ( int j = 0; j < bn; j++ )
            if ( a[ i ] == b[ j ] ) {
               flag = true;
               
               for ( int k = 0; k < bn; k++ )
                  if ( b[ k ] == b[ j ] && k != j ) {
                     flag = false;
                     break;
                  }
               
               break;
            }
      }
      
      if ( flag )
         std::cout << a[ i ] << ' ';
   }
   
   std::cout << std::endl;
Добавлено через 17 минут
Единственно упустил, вот тут
C++
1
2
3
for ( int j = 0; j < an; j++ )
         if ( a[ i ] == a[ j ] && i != j )
            flag = false;
можно добавить break, чтоб он не искал дальше, если вдруг найдет хоть одно равное число.
C++
1
2
3
4
5
for ( int j = 0; j < an; j++ )
         if ( a[ i ] == a[ j ] && i != j ) {
            flag = false;
            break;
         }
1
19 / 19 / 5
Регистрация: 03.11.2011
Сообщений: 80
05.05.2012, 12:42  [ТС]
Условие задачи немного поменялось. Помогите пожалуйста составить программу, которая выводила бы не числа, входящие всего один раз в каждую последовательность, а числа, встречающие в обеих последовательностях без повторов.

Например,
1-я последовательность: {5, 3, -2, 3, 4, 5, 1}
2-я последовательность: {6, 4, 3, 12, 5, -2}
Результат: 3, -2, 5
0
 Аватар для Петррр
6721 / 3570 / 900
Регистрация: 28.10.2010
Сообщений: 5,937
05.05.2012, 12:56
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#include <iostream>
#include <set>
#include <iterator>
#include <algorithm>
 
int main()
{
   std::vector<int> vec1 = {5, 3, -2, 3, 4, 5, 1};
   std::vector<int> vec2 = {6, 4, 3, 12, 5, -2};
   std::sort(vec1.begin(), vec1.end());
   std::sort(vec2.begin(), vec2.end());
   std::set<int> s;
   std::set_intersection(vec1.begin(), vec1.end(), 
        vec2.begin(), vec2.end(), std::inserter(s, s.begin())); 
   std::copy(s.begin(), s.end(), std::ostream_iterator<int>(std::cout, " "));
   return 0;  
}
1
19 / 19 / 5
Регистрация: 03.11.2011
Сообщений: 80
05.05.2012, 15:58  [ТС]
Цитата Сообщение от user_p01 Посмотреть сообщение
Помогите пожалуйста составить программу, которая выводила бы не числа, входящие всего один раз в каждую последовательность, а числа, встречающие в обеих последовательностях без повторов.
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
#include <iostream>
using namespace std;
int main()
{
    setlocale(LC_ALL, "rus");
    int a[100], b[100], i, j, n, m, k;
    bool flag=false;
    cout << "Введите количество чисел первой последовательности:\n";
    cin >> n;
    cout << "Введите числа первой последовательности:\n";
    for (i=0; i<n; i++)
        cin >> a[i];
    cout << "Введите количество чисел второй последовательности:\n";
    cin >> m;
    cout << "Введите числа второй последовательности:\n";
    for (j=0; j<n; j++)
        cin >> b[j];
    cout << "Различные числа, встречающиеся в обеих последовательностях\n";
    for ( int i = 0; i < n; i++ ) 
    {
      flag = true;
      
      for ( int j = 0; j < n; j++ )
         if ( a[ i ] == a[ j ] && i != j )
            flag = false;
            
      if ( flag ) 
      {
         flag = false;
         
         for ( int j = 0; j < m; j++ )
            if ( a[ i ] == b[ j ] ) 
            {
               flag = true;
               
               for ( int k = 0; k < m; k++ )
                  if ( b[ k ] == b[ j ] && k != j ) 
                  {
                     flag = false;
                     break;
                  }
               
               break;
            }
      }
      
      if ( flag )
         cout << a[ i ] << ' ';
   }
      system("pause");
      return 0;
}
Помогите пожалуйста исправить этот код.
0
 Аватар для Toshkarik
1181 / 894 / 94
Регистрация: 03.08.2011
Сообщений: 2,461
05.05.2012, 17:23
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
bool flag;
 
for ( int i = 0; i < n; i++ ) {
   flag = true;
 
   for ( int j = 0; j < i; j++ ) {
      if ( a[ i ] == a[ j ] )
         flag = false;
         break;
      }
 
   if ( flag )
      std::cout << a[ i ] << ' ';
}
И тоже самое для второй.
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
05.05.2012, 17:23
Помогаю со студенческими работами здесь

Напечатать различные простые делители числа N
Помогите написать программу Напечатать различные простое делители числа N.

Вывести в порядке убывания все различные элементы матрицы, встречающиеся в главной и побочной диагоналях
Дана матрица А размерность элементов целого типа из диапазона от - 127 до 127. Не используя вспомогательных массивов и не изменяя порядка...

Выбрать одинаковые числа в последовательностях
Даны две последовательности из целых чисел: а1, ..., аn; b1, ..., bn. Напечатать различные числа, встречающиеся в обоих последовательностях.

Одинаковые числа в двух последовательностях
Даны две последовательности целых чисел: а1, …, аn; b1, …, bm. Напечатать различные числа, встречающиеся в обеих последовательностях.

Поиск максимального числа z в двух бинарных последовательностях
Задание: Пусть x и y - две бинарных последовательности (т.е. элементы последовательностей - нули и единицы); x и y можно рассматривать как...


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

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru