Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.50/6: Рейтинг темы: голосов - 6, средняя оценка - 4.50
0 / 0 / 1
Регистрация: 16.04.2011
Сообщений: 48

Общие элементы в массивах

11.05.2011, 22:04. Показов 1280. Ответов 4
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте.
Задача: есть два возрастающих массива длиной k и m. нужно найти общие элементы и разместить их в массиве t. Вот мой код, но он работает некорректно при выводе элементов массива на экран, не могу понять где ошибка (код скопировал из Билдера, если кто подскажет как его отображать с тегами буду благодарен).

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#include <stdio.h>
#include <conio.h>
#include <iostream.h>
using namespace std;
 
int x[]={1,3,6,8,9},y[]={2,3,4,6,9},t[10];
size_t i,j,k,m,z=0;
k=sizeof(x)/sizeof(int),m=sizeof(y)/sizeof(int);
for (i=0;i<k;i++)
  {for (j=0;j<m;j++)
   {if (x[i]==y[j]) {t[z]=x[i];z++; break;}}}
z=sizeof(t)/sizeof(int);
for (i=0;i<z;i++) cout<<t[i]<<" ";
 
getch();
return 0;
}
 Комментарий модератора 
Используйте теги форматирования кода!
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
11.05.2011, 22:04
Ответы с готовыми решениями:

Из целочисленного массива Х все четные элементы записать в массив Y. Удалить в массивах максимальные элементы
Из целочисленного массива Х(N) все четные элементы записать в массив Y(k). Удалить в массивах максимальные элементы. В программе написать...

общие элементы массива
Привет! есть задание Даны два массива : А и B. Необходимо создать третий массив, в котором нужно собрать общие элементы двух массивов. ...

Найти общие элементы
Как найти общие элементы двух целочисленных массивов и записать их в третий массив. Массивы сформированы случайно.

4
6 / 6 / 1
Регистрация: 11.05.2011
Сообщений: 28
11.05.2011, 22:08
Нужно при создании своего сообщения нажать на кнопку "C++", далее поместить свой код внутрь пары тегов. (CPP) <here> (/CPP)
1
 Аватар для MILAN
899 / 793 / 186
Регистрация: 21.02.2009
Сообщений: 1,722
11.05.2011, 23:48
aquarius-a,
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>
#include <ctime>
#include <cstdlib>
using namespace std;
int main()
{
    srand(time(NULL));
    const int M=10,N=8;
    int k=0,count=0;;
    int arr[M],arr1[N],arr2[M>N ? M : N];
    cout<<"Array_1 -> ";
     for(int i=0; i<M; i++)
     {
         arr[i]=rand()%10;
         cout<<arr[i]<<" ";
     }
    cout<<endl;
    cout<<"Array_2 -> ";
     for(int i=0; i<N; i++)
     {
         arr1[i]=rand()%10;
         cout<<arr1[i]<<" ";
     }
    cout<<endl<<"Rasult -> ";
    for(int i=0; i<M; i++)
    {
        for(int j=0; j<N; j++)
        {
            if(arr[i]==arr1[j])
            {
                for(int l=0; l<k; l++)
                {
                    if(arr2[l]==arr[i])
                    {
                        count++;
                    }
                }
                if(!count)
                {
                  arr2[k]=arr[i];
                  cout<<arr2[k]<<" ";
                  k++;
                  count=0;
                }
                break;
            }
        }
    }
    cout<<endl;
    system("pause");
    return 0;
}
0
0 / 0 / 1
Регистрация: 16.04.2011
Сообщений: 48
12.05.2011, 00:09  [ТС]
уже разобрался. почему-то строка z=sizeof(t)/sizeof(int); не давала корректно работать программе, хотя мне кажется ничего такого быть не должно, я всего лишь вычислил размер массива.

Добавлено через 20 минут
MILAN, спасибо за код. скажите, а что означает запись
Цитата Сообщение от MILAN Посмотреть сообщение
arr2[M>N ? M : N];
и еще мне не совсем понятна конструкция:
Цитата Сообщение от MILAN Посмотреть сообщение
for(int l=0; l<k; l++)
{
if(arr2[l]==arr[i])
{
count++;
}
}
if(!count)
{
arr2[k]=arr[i];
cout<<arr2[k]<<" ";
k++;
count=0;
как вы делаете цикл от l=0 до l=k если в самом начале вы присвоили к=0; и не могу понять что вы делаете этим:

Цитата Сообщение от MILAN Посмотреть сообщение
for(int l=0; l<k; l++)
{
if(arr2[l]==arr[i])
{
count++;
}
}
0
 Аватар для MILAN
899 / 793 / 186
Регистрация: 21.02.2009
Сообщений: 1,722
12.05.2011, 00:19
Цитата Сообщение от aquarius-a Посмотреть сообщение
M>N ? M : N
Тернарная операция(размер массива общих елементов будет равен размеру большого из двух масивов )

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
 for(int i=0; i<M; i++) // берем цикл, который пробегает по первому массиву
    {
        for(int j=0; j<N; j++) // цикл, который пробегает по елементам второго массива 
        {
            if(arr[i]==arr1[j]) // сравниваем по очереди елементы из первого массива с елементами со второво массива, если они равны
            {
                for(int l=0; l<k; l++) // в етом цикле пробегаем по елементам массива-результата,и смотрим
                {
                    if(arr2[l]==arr[i]) // если такие елементы в массиве результате есть
                    {
                        count++; // увеличеваем счетчик
                    }
                }
                if(!count) // если счетчик 0
                {
                  arr2[k]=arr[i]; // записываем елемент в массив результата 
                  cout<<arr2[k]<<" "; // выводи его на екран
                  k++; // увеличиваем счетчик индексации массива результата
                  count=0; // сбрасываем счетчик  
                }
                break;
            }
        }
    }
Блин, немного набыдлокодил!!!
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
12.05.2011, 00:19
Помогаю со студенческими работами здесь

Общие элементы двух массивов
Есть два массива, 1-ий -- на 10 элементов, 2-ой – на 20 элементов. - найти все одинаковые числа, которые есть в первом и во втором....

Общие и частные элементы класса
Где ошибка в коде? // infohide.cpp : Defines the entry point for the console application. // #include &quot;stdafx.h&quot; #include...

Собрать общие элементы двух массивов
Задание: Даны два массива: А и B (M и N вводятся с клавиатуры). Необходимо создать третий массив минимально возможного размера, в...

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

Общие элементы двух массивов записать в один
void search(int a,int b,int c,int n,int m){ for(int i=0;i&lt;n;i++){ for(int j=0;j&lt;m;j++){ if(a==b){ // так выводит массив c...


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

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Новые блоги и статьи
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