Форум программистов, компьютерный форум, киберфорум
Наши страницы

Работа с массивами в С++ . Поиск общих элементов двух массивов - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Построение СДНФ и СКНФ http://www.cyberforum.ru/cpp-beginners/thread954435.html
Здравствуйте! Помогите, или подскажите как решить такую задачу: нужно автоматом сгенерировать таблицу истинности, затем ввести число 1991 (для примера) перевести данное число в двоичную систему...
C++ Генератор случайных чисел в объекте Вообщем в объекте числа генерятся одни и те же, в main все норм(хотя рандомом их тож особо не назвоёшь, в ВСтудии и КодеБлокс видимо разные функции rand()? #include "NewNumber.h" #include... http://www.cyberforum.ru/cpp-beginners/thread954422.html
запись string и функция replace C++
Всем привет! Задача: в командную строку подается: входной и выходной файлы, слово которое надо заменить и слово НА которое надо заменить с помощью replace. Подскажите, что делаю не так и как записать...
В массиве целых чисел необходимо найти минимальное число, строго большее числа A C++
Задача уже есть на форуме Free Pascal, необходимо написать её только на с++ Условие:http://www.cyberforum.ru/free-pascal/thread652461.html "В массиве целых чисел необходимо найти минимальное число,...
C++ Есть файл со звуком как его прослушать? http://www.cyberforum.ru/cpp-beginners/thread954414.html
#include<stdio.h> int main(){ return 0; } ВСе что я знаю о програмировании! есть файл со звуком как его прослушать? надо написать playSound и путь к файлу
C++ как поставить защиту от дураков? #include "stdafx.h" #include <math.h> #include <clocale> #include <iostream> using namespace std; int main () { setlocale(LC_ALL, "Russian"); подробнее

Показать сообщение отдельно
VASYA_A
2 / 2 / 0
Регистрация: 11.09.2013
Сообщений: 129

Работа с массивами в С++ . Поиск общих элементов двух массивов - C++

14.09.2013, 18:32. Просмотров 741. Ответов 5
Метки (Все метки)

Здравствуйте! Есть такой у меня код .
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
#include "stdafx.h"
#include <iostream>
#include <conio.h>
#include <fstream>
using namespace std;
int main()
{   int h3 [10];                                    //массив для общих элементов
    ofstream file("D:\\First.DAT");                //создаём объект класса ofstream для записи его в файл
    int h4[20] = {5,6,3,66,59,9,234,67,1,57,345,75,99,234,342,333,232,144,2,55}; //элементы массива h4
    file<<"\n h4:";
    for(int i = 0; i < 20; i++)
    file << h4[i] << " ";
    file<<endl;
    int h5[12]={9,232,233,234,345,100,111,56,88,355,55,60};                     //элементы массива h5
    file<<"\n h5:";
    for(int j=0; j<12; j++)
    file<<h5[j]<<" ";
    file.close();                                                               
    
    ifstream file2("D:\\First.DAT");                                            //вывод из файла
    char line[1000];
    while(!file2.eof())
    {file2.getline(line,sizeof(line));
    cout<<line<<endl;
}
file2.close();                                                                 //закрытие файла
 
 int t=0;    
 int k=0;
 while (t<20)
      {for (int i=0; i<12; i++)//прогоняет все элементы первого массива, сравнивая с
        {                     //одним (j-м) элементом второго массива
         int p=0;       
           if (h5[i]==h4[t]) //элементы двух массивов одинаковы
              {for (int l=0; l<20; l++)
                  if (h5[i]==h3[l]) //проверяет наличие подобного элемента в 3-м массиве
                    p+=1;   
               if (p==0) //если элементы двух массивов одинаковы и он(элемент) не нашёлся в 3 массиве
                    {h3[k]=h5[i];
                     cout << k+1 << " Element h3 = " << h3[k]<< endl;
                     k+=1;
                     }}}
          t++;}//начинаем прогон следующего элемента второго массива
 
 ofstream file3("D:\\TWO.DAT");   //запись результата  в файл
 file3<<"\n h3:";
 for(int k=0;k<10;k++)
 file3<<h3[k]<<" ";
 file3.close();
 
    getch();
    return 0;
}
Помогите , пожалуйста , разобраться , как работает алгоритм нахождения общих элементов, без повторений ?
Я понимаю , что нужно создать 3-ий массив , записывать в него результат и каждый раз проверять -нет ли в нём уже числа , которое хотим записать .

Как понять строчку
C++
1
 while (t<20)
?
Что такое переменная p? Зачем она нужна?

Помогите разобраться - зачем нужны k,t,,l ?
Напишите , пожалуйста , предназначение каждого . Буду очень благодарен Вам !

И ещё такой вопрос : как узнать размерность массива , где будут хранится общие элементы ?
При записи в файл результата выводятся сначала общие элементы , а дальше какие-то непонятные числа с "-" .

Помогите , пожалуйста , разобраться .
Спасибо за Ваши ответы .
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru