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

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

Войти
Регистрация
Восстановить пароль
 
NNN7
7 / 7 / 3
Регистрация: 05.09.2013
Сообщений: 502
#1

Нужно разобраться с небольшим примером - C++

06.10.2013, 10:22. Просмотров 277. Ответов 3
Метки нет (Все метки)

Здравствуйте . Есть такая программа , где два массива записываются в 2 разных файла , потом считываются с него , а далее нужно найти общие элементы этих массивов и записать их в третий массив.
C++
1
2
int h4[20]={......}
int h5[12]={....}
Эти массивы записали , вывели с файла.
Далее нужно общие элементы записать в массив h3[].
Нашёл такой пример , но не совсем понимаю , как она работает .
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
int h3[5];                                      //массив для хранения общих элементов
 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 <<endl<< "\n  Element h3 = " << h3[k]<< endl;
                     k+=1;
                     }}}
          t++;}                               //начинаем прогон следующего элемента второго массива
Комментарии писал не я.
Помогите разобраться , зачем нужно условие
C++
1
while (t<20)
И немного запутался в алгоритме : получается сначала мы делаем цикл по массиву h5[12].
Дальше я не понимаю , зачем нужна переменная p?

Помогите , пожалуйста , хотя бы немного разобраться с этими вопросами .Буду очень признателен Вам .
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
06.10.2013, 10:22     Нужно разобраться с небольшим примером
Посмотрите здесь:

Не могу разобраться с примером из книги Липпмана - C++
#include &lt;iostream&gt; #include &lt;string&gt; using std::string; string &amp; shorterString(string &amp;s1, string &amp;s2) { auto &amp;r =...

Нужно разобраться - C++
Прошу помощи. Расскажите пожалуйста по пунктам где и что делает программа, что за функция.Заранее благодарен. #include &lt;stdio.h&gt; int...

Нужно разобраться с кодом - C++
что делается в 6 строке и с 44-60? #include &lt;iostream&gt;; #include &lt;string.h&gt;; using namespace std; 6 char **AddPtr (char...

Нужно разобраться в коде - C++
Написать программу, которая в произвольном текстовом файле определяет количество предложений и слов, строчных и заглавных символов, знаков...

Нужно разобраться с циклом if - C++
Всем привет, помогите разобраться. Дано задание: Найти минимальный положительный элемент массива (N) и количество четных элементов. ...

Нужно разобраться с указателями - C++
#include &lt;iostream&gt; #include &lt;stdio.h&gt; using namespace std; //подсчет кол-ва согласных в слове int cntsogl(char *s) { int n=0;...

Нужно разобраться с информатикой!!!!! - C++
Задание 1. Составить алгоритм в виде блок-схемы и програму для вычисления арифметического выражения и вывода полученного результата. ВВод...

нужно разобраться в коде - C++
Определить минимальный положительный элемент главной диагонали матрицы А(5,5) и заменить все элементы строки и столбца,в котором он...

Нужно разобраться с программой - C++
В общем дана программа, мне нужно разобрать ее всю и полностью :) Нужно объяснить каждую строчку что за что отвечает и что делает, думаю...

Нужно разобраться в коде - C++
Откомментируйте пожалуйста по строчке ,кто ,что может,а то не могу разобраться,это программа обход бинарного дерева в глубину справа налево...


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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
kazak
3033 / 2354 / 155
Регистрация: 11.03.2009
Сообщений: 5,401
06.10.2013, 10:52     Нужно разобраться с небольшим примером #2
while тоже цикл, почему тут вперемешку два вида цикла, нужно спрашивать у автора этого кода.
Алгоритм такой:
-берем элемент массива h4 (цикл while)
-в цикле сравниваем со всеми элементами массива h5 (первый цикл for)
-если есть совпадение, в еще одном цикле сравниваем совпавший элемент со всеми элементами массива h3 (второй цикл for)
-если совпавшие элементы h4 и h5 отсутствуют в h3, записать элемент в h3
Переменная р используется как флаг
NNN7
7 / 7 / 3
Регистрация: 05.09.2013
Сообщений: 502
06.10.2013, 10:58  [ТС]     Нужно разобраться с небольшим примером #3
Цитата Сообщение от kazak Посмотреть сообщение
while тоже цикл, почему тут вперемешку два вида цикла, нужно спрашивать у автора этого кода.
Алгоритм такой:
-берем элемент массива h4 (цикл while)
-в цикле сравниваем со всеми элементами массива h5 (первый цикл for)
-если есть совпадение, в еще одном цикле сравниваем совпавший элемент со всеми элементами массива h3 (второй цикл for)
-если совпавшие элементы h4 и h5 отсутствуют в h3, записать элемент в h3
Переменная р используется как флаг
Спасибо за ответ . Про флаг уже сам догадался)
Но всё равно немного не понятно с while. Почему используется переменная t? Какими образом она относится к массиву?
kazak
3033 / 2354 / 155
Регистрация: 11.03.2009
Сообщений: 5,401
06.10.2013, 11:25     Нужно разобраться с небольшим примером #4
9 строка
Цитата Сообщение от NNN7 Посмотреть сообщение
if (h5[i]==h4[t])
Yandex
Объявления
06.10.2013, 11:25     Нужно разобраться с небольшим примером
Ответ Создать тему
Опции темы

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