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

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

Войти
Регистрация
Восстановить пароль
 
-Lambert-
Сообщений: n/a
#1

Нужно найти в массиве и распечатать пары одинаковых чисел - C++

10.12.2012, 03:08. Просмотров 389. Ответов 3
Метки нет (Все метки)

Нужно найти в массиве и распечатать пары одинаковых чисел при помощи одномерных массивов.
Пример работы программы:

Ввод чисел 1 2 3 1 2 5 1 2 3 1 2

Программа ввыводит [11] [22] [33] [11] [22]

Тоесть испозованые елементы не должны повторяться.

Мой код:

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
// lab №4 (1 semestr)
 
#include <iostream>
using namespace std;
 
int main()
{
 
    locale :: global(locale("rus"));
 
    const int N = 10;
 
    int Z[N];
    int i = 0;
    int j = 0;
 
    for(i = 0 ; i < N ; i++)
    {
        cin >> Z[i];
    }
 
    for(i = 0 ; i < N ; i++)
    {
        for(j = i + 1 ; j < N ; j++)
        {
            if(Z[i] == Z[j])
            {
                cout << "Пары одинаковых чисел: " << "[" << Z[i] << Z[j] << "]" << endl;
                break;
            }
        }
    }
 
    system("pause");
    return 0;
}
В программа всеравно берутся использовавшиеся елементы. Кому не сложно помогите разобраться.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
10.12.2012, 03:08     Нужно найти в массиве и распечатать пары одинаковых чисел
Посмотрите здесь:

В массиве целых чисел найти и распечатать все пары одинаковых чисел - C++
В массиве целых чисел найти и распечатать все пары одинаковых чисел. За помощь буду очень благодарен. //В массиве целых чисел найти...

В заданном массиве целых чисел найти все пары чисел, удовлетворяющих условию - C++
Дан массив целых чисел а0, ..., аn-1. Найти все пары (аi, аi+1), такие, что аi = 0 и аi+1 кратно 2.

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

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

Найти и вывести все имеющиеся пары стоящих рядом одинаковых символов - C++
Помогите решить пожалуйста: Среди данного массива символов, найти и вывести все имеющиеся пары стоящих рядом одинаковых символов. Все...

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

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Nikcharn
71 / 53 / 3
Регистрация: 31.07.2009
Сообщений: 149
10.12.2012, 03:39     Нужно найти в массиве и распечатать пары одинаковых чисел #2
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
#include <iostream>
using namespace std;
 
int main()
{
 
    locale :: global(locale("rus"));
 
    const int N = 10;
 
    int Z[N], used[N];
    int i = 0;
    int j = 0, kol = 0;
    bool fl;
    for(i = 0 ; i < N ; i++)
    {
        cin >> Z[i];
    }
 
    for(i = 0 ; i < N ; i++)
    {
        fl = false;
        for(j = 0 ; j < kol ; j++)
            if (Z[i] == used[j])
                fl = true;
        if (!fl)
            for(j = i + 1 ; j < N ; j++)
            {
                if(Z[i] == Z[j])
                {
                    cout << "Пары одинаковых чисел: " << "[" << Z[i] << Z[j] << "]" << endl;
                    used[kol] = Z[i];
                    kol++;
                    break;
                }
            }
    }
 
    system("pause");
    return 0;
}
activnaya
255 / 45 / 2
Регистрация: 24.11.2012
Сообщений: 466
10.12.2012, 03:41     Нужно найти в массиве и распечатать пары одинаковых чисел #3
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 <vector>
#include <iterator>
#include <iomanip>
#include <cstdlib>
#include <ctime>
 
typedef unsigned int uint;
 
int main()
{
    const uint size = 20;
    std::vector<int> v(size);
    std::vector<int> f;
    std::vector<int>::iterator it;
 
    std::srand(std::time(0));
 
    for (it = v.begin (); it != v.end (); ++it)
    {
        *it = std::rand() % size;
        std::cout << std::setw(3) << *it;
    }
    std::cout << '\n';
 
    for (it = v.begin (); it != v.end () - 1; ++it)
        for (std::vector<int>::iterator i = it + 1; i != v.end (); ++i)
        {
            if (*it == *i)
            {
                bool flag = true;
 
                for (std::vector<int>::iterator t = f.begin (); t != f.end (); ++t)
                    if (*t == *it)
                    {
                        flag = false;
                        break;
                    }
 
                if (flag)
                {
                    f.push_back ( *i );
                    break;
                }
            }
        }
    for (it = f.begin (); it != f.end (); ++it)
        std::cout << "[" << *it << *it << "]" << "  ";
    std::cout << '\n';
 
    return 0;
}
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
10.12.2012, 08:41     Нужно найти в массиве и распечатать пары одинаковых чисел
Еще ссылки по теме:

Имеются ли в массиве пары взаимно обратных соседних чисел? - C++
Дан одномерный массив x, x,..., x. Определить, имеется ли в нем пары взаимно обратных соседних чисел. Определить число таких соседств.

Нахождение одинаковых чисел в массиве - C++
Здрасьте всем, есть небольшой вопрос. Имеется массив из пяти элементов. Необходимо найти в нем пары одинаковых чисел. Сортировка...

Поиск 2-х и более одинаковых чисел в массиве - C++
Программа должна находить в массиве значения, встречающиеся 2 и более раз. Проблема в том, что если одинаковых чисел 4 и больше, то в...

Нахождение в массиве двух одинаковых чисел - C++
Здравствуйте. Застрял на задаче, решил попросить у вас помощи. Суть её в том, что из файла считывается массив целых чисел, в нём находятся...

В массиве найти сумму каждой соседней пары элементов - C++
#include &lt;iostream&gt; #include &lt;conio.h&gt; #include &lt;math.h&gt; #include &lt;time.h&gt; #include &lt;string&gt; using namespace std; void...

Если в одномерном массиве встречаются 2 подряд идущих одинаковых числа, то одно нужно удалить - C++
задан одномерный массив, если в нем встречаются 2 подряд идущих одинаковых числа, то одно нужно удалить. с помошью какой команды это можно...


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

Или воспользуйтесь поиском по форуму:
ForEveR
В астрале
Эксперт С++
7970 / 4732 / 320
Регистрация: 24.06.2010
Сообщений: 10,541
Завершенные тесты: 3
10.12.2012, 08:41     Нужно найти в массиве и распечатать пары одинаковых чисел #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
34
35
36
37
38
39
40
41
42
43
44
45
#include <iostream>
#include <list>
#include <algorithm>
#include <utility>
 
#include <boost/optional.hpp>
 
boost::optional<std::pair<int, int>> find_pair(std::list<int>::iterator& pos, std::list<int>& v)
{
   boost::optional<std::pair<int, int>> result;
   auto nextpos = pos;
   std::advance(nextpos, 1);
   auto i = std::find(nextpos, v.end(), *pos);
   if (i != v.end())
   {
      std::cout << *pos << " " << *i << std::endl;
      result = std::make_pair(*pos, *i);
      v.erase(pos++);
      v.erase(i);
   }
   return result;
}
 
int main()
{
   const std::vector<int> v = {1,2,3,1,2,5,1,2,3,1,2};
   std::list<int> mutable_v(v.begin(), v.end());
   std::vector<std::pair<int, int>> pairs;
   for (auto pos = std::begin(mutable_v); pos != std::end(mutable_v);)
   {
      auto res = find_pair(pos, mutable_v);
      if (!res)
      {
         ++pos;
      }
      else
      {
         pairs.push_back(res.get());
      }
   }
   for (const auto& p : pairs)
   {
      std::cout << p.first << " " << p.second << std::endl;
   }
}
http://liveworkspace.org/code/3RF7BQ$6
Yandex
Объявления
10.12.2012, 08:41     Нужно найти в массиве и распечатать пары одинаковых чисел
Ответ Создать тему
Опции темы

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