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

Массив-пересечение - C++

Восстановить пароль Регистрация
 
Fil__
0 / 0 / 0
Регистрация: 02.12.2010
Сообщений: 5
02.12.2010, 14:24     Массив-пересечение #1
Помогите, пожалуйста, с заданием:
Дано два целочисленных массива, состоящих из не повторяющихся чисел. Сформировать новый массив, который содержит элементы, имеющиеся одновременно и в первом и во втором массивах (массив-пересечение).

По сути, решение я уже нашел, но:
1. Не могу поставить генератор чисел для массива таким образом, чтобы он точно генерировал не повторяющиеся значения;
2. Может стоит поставить ввод значений с клавиатуры?
3. Если в задании не дано кол-во элементов массива, то как это описать в программе (путем ввода значений с клавиатуры)?
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
#include "stdafx.h"
#include <conio.h>
#include <iostream>
using namespace std; //подключение стандартного пространства имен
 
void main()
{
int a[10]={1,2,4,6,7,9,11,8,14,16}; //Задаем массив a
int b[10]={0,2,3,5,9,12,4,8,13,15}; //Задаем массив b
int c[10]; //Задаем массив c
bool flag; //Переменная flag - логический тип
for (int j=0, k=0;j<10;j++)
    {
    for (int i=0;i<10; i++)
        if (a[j]==b[i])
        {
        flag = true;
        for(int l = 0; l< k; l++)
            {
            if(c[l] == a[j])
                {
                flag = false;
                }
            }
        if(flag)
        {
        cout << a[j]<< '\n';
        c[k++] = a[j];
        }
        }
    }
getchar(); //Пауза
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
02.12.2010, 14:24     Массив-пересечение
Посмотрите здесь:

Пересечение множеств C++
Пересечение множеств C++
Задача на пересечение C++
Пересечение множеств C++
C++ Пересечение прямых
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
asics
Freelance
Эксперт C++
 Аватар для asics
2838 / 1775 / 144
Регистрация: 09.09.2010
Сообщений: 3,842
02.12.2010, 14:26     Массив-пересечение #2
Цитата Сообщение от Fil__ Посмотреть сообщение
3. Если в задании не дано кол-во элементов массива, то как это описать в программе (путем ввода значений с клавиатуры)?
Ну да, надо юзать динамику.
C++
1
2
3
4
5
6
7
int*Arr;
int n=0;
std::cout<<"Enter n: ";
std::cin>>n;
Arr=new int[n];
//...
delete[] Arr;
Valerko
17 / 17 / 1
Регистрация: 30.11.2010
Сообщений: 164
02.12.2010, 14:37     Массив-пересечение #3
C++
1
2
3
4
5
6
7
8
9
10
#include "stdafx.h"
#include <conio.h>
#include <iostream>
#include <time.h>
void main()
{
srand(time(0));
 
int a[10]={1,2,4,6,7,9,11,8,14,16}; //Задаем массив a
int b[10]={0,2,3,5,9,12,4,8,13,15}; //Задаем массив b
а если так?
Fil__
0 / 0 / 0
Регистрация: 02.12.2010
Сообщений: 5
02.12.2010, 16:51  [ТС]     Массив-пересечение #4
Цитата Сообщение от Valerko Посмотреть сообщение
C++
1
2
3
4
5
6
7
8
9
10
#include "stdafx.h"
#include <conio.h>
#include <iostream>
#include <time.h>
void main()
{
srand(time(0));
 
int a[10]={1,2,4,6,7,9,11,8,14,16}; //Задаем массив a
int b[10]={0,2,3,5,9,12,4,8,13,15}; //Задаем массив b
а если так?
Что-то не работает(( Видимо что-то не так делаю.

Да ладно, б-г с ним, с этим генератором чисел, пусть будут постоянные значения. Время поджимает(

Я не могу понять саму логику программы, может кто объяснит.
Также непонятны следующие моменты:
C++
1
if(flag)    //Если flag принимает значение "чего?", что это за значение, true or false
C++
1
c[k++] = a[j];  //А это зачем нужно?
Yandex
Объявления
02.12.2010, 16:51     Массив-пересечение
Ответ Создать тему
Опции темы

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