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

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

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 13, средняя оценка - 4.77
Ka3aHTuI7
0 / 0 / 0
Регистрация: 15.03.2012
Сообщений: 6
16.03.2012, 22:34     В массиве целых чисел найти и распечатать все пары одинаковых чисел #1
В массиве целых чисел найти и распечатать все пары одинаковых чисел. За помощь буду очень благодарен.


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

C++ Среди заданных целых чисел k,l,m найти пары кратных
перегруженые функции для вычисления суммы произведений двух соседних чисел для трех целых чисел и в одномерном массиве целых чисел C++
Найти все пары двузначных чисел, которые, будучи записанными подряд, дают четырёхзначное число, нацело делящееся на сумму данных чисел C++
C++ Нужно найти в массиве и распечатать пары одинаковых чисел
Сформировать одномерный массив целых чисел, используя датчик случайных чисел, и распечатать массив. Удалить из массива все элементы, совпадающие с его C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Finale
13 / 13 / 1
Регистрация: 12.01.2012
Сообщений: 49
16.03.2012, 22:42     В массиве целых чисел найти и распечатать все пары одинаковых чисел #2
Берёте первое число, пробегаетесь по массиву: а) если еще 1 число такое же, выводим. б) если таких чисел больше нету, или их больше чем 1(но если число нечётное - выводить придётся 2 раза) - не выводим.
забыл еще: после первого повторяем для всех элементов массива, ессно оглядываясь на уже найденные результаты.

Хотя условие мне кажется неконкретизированным.
Ka3aHTuI7
0 / 0 / 0
Регистрация: 15.03.2012
Сообщений: 6
19.03.2012, 01:20  [ТС]     В массиве целых чисел найти и распечатать все пары одинаковых чисел #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
//В массиве целых чисел найти и распечатать все пары одинаковых чисел
#include <iostream>
using namespace std;
 
const int N = 4;
 
int main()
{
    //подключение русского языка
    locale :: global(locale("rus"));
 
    int Z[N];
    int i = 0;
    int j = 0;
 
    cout << "Введите " << N << " целых чисел" << endl;
 
    for(i = 0 ; i < N ; i++)
    {
        cin >> Z[i];
    }
 
    for(i = 0 ; i < N ; i++)
    {
        for(j = 1 ; j < N ; j++)
        {
            if(Z[i] == Z[j])
            {
                cout << "Пары елементов :[" << Z[i] << Z[j] << "]" << endl;
            }
        }
    }
 
 
                
 
    system("pause");
    return 0;
Как я понят нужно так зделать. Но программа всеравно работает некорректно. А если через if делать, то это издевательство уже. Я взял массив из 4 елементов, а если из 20 захочю? Это же столько if надо будет писать. Может есть вариант по проще?
Infinity3000
 Аватар для Infinity3000
1057 / 576 / 24
Регистрация: 03.12.2009
Сообщений: 1,255
19.03.2012, 01:40     В массиве целых чисел найти и распечатать все пары одинаковых чисел #4
если считать что в таком массиве 3 3 3 4 4 две пары 3 3 и 4 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 <iostream>
using namespace std;
 
 
int main()
{
 //подключение русского языка
    locale :: global(locale("rus"));
    int N;
    cout << "Введите размер массива - " << endl;
    cin >> N;
    int *Z = new int [N];
    int i = 0;
   
    cout << "Введите элементы массива" << endl;
    for(i = 0 ; i < N ; i++)
    {
        cin >> Z[i];
    }
 
    for(i = 0 ; i < N ; i++)
    {
        if(Z[i] == Z[i - 1])
        {
            cout << "Пары елементов :[ " << Z[i] << " ]" << "[ " << Z[i - 1] << "]" << endl;
            i++;        
        }
    }
           delete [] Z;
    system("pause");
    return 0;
}
Добавлено через 1 минуту
тут считаеться пара, если они идут подрят!
Ka3aHTuI7
0 / 0 / 0
Регистрация: 15.03.2012
Сообщений: 6
19.03.2012, 01:44  [ТС]     В массиве целых чисел найти и распечатать все пары одинаковых чисел #5
Тоесть он не выдаст пару, если будет равен 3 и 7 елементы к примеру? И возможно ли так сделать. Или все же некорректное условие?
Infinity3000
 Аватар для Infinity3000
1057 / 576 / 24
Регистрация: 03.12.2009
Сообщений: 1,255
19.03.2012, 02:00     В массиве целых чисел найти и распечатать все пары одинаковых чисел #6
Цитата Сообщение от Ka3aHTuI7 Посмотреть сообщение
Тоесть он не выдаст пару, если будет равен 3 и 7 елементы к примеру?
нет не выдаст!

Цитата Сообщение от Ka3aHTuI7 Посмотреть сообщение
И возможно ли так сделать. Или все же некорректное условие?
можно сделать все!

Добавлено через 13 минут
Ka3aHTuI7, по вашему сколько сдесь пар 3 3 3?
Ka3aHTuI7
0 / 0 / 0
Регистрация: 15.03.2012
Сообщений: 6
19.03.2012, 02:19  [ТС]     В массиве целых чисел найти и распечатать все пары одинаковых чисел #7
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
//В массиве целых чисел найти и распечатать все пары одинаковых чисел
#include <iostream>
using namespace std;
 
const int N = 10;
 
int main()
{
    //подключение русского языка
    locale :: global(locale("rus"));
 
    int Z[N];
    int i = 0;
    int j = 0;
 
    cout << "Введите " << N << " целых чисел" << endl;
 
    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;
            }
        }
    }   
 
    system("pause");
    return 0;
}
Все получилось! Спасибо большее! Только проблема теперь в другом. Как сделать так, чтобы, если в массиве 3 одинаковых числа второй раз пару не выводило.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
19.03.2012, 06:20     В массиве целых чисел найти и распечатать все пары одинаковых чисел
Еще ссылки по теме:

В массиве целых чисел из 20 элементов найти все элементы, значение которых больше среднего арифметического массива C++
В массиве целых чисел найти количество чисел с наименьшим количеством цифр C++
В массиве из целых чисел найти среднее арифметическое тех чисел, которые начинаются с цифры 5 C++

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

Или воспользуйтесь поиском по форуму:
Toshkarik
 Аватар для Toshkarik
1139 / 856 / 50
Регистрация: 03.08.2011
Сообщений: 2,381
Завершенные тесты: 1
19.03.2012, 06:20     В массиве целых чисел найти и распечатать все пары одинаковых чисел #8
После найденной пары сразу же выходить из внутреннего цикла. Но в любом случае если будет что то вроде этого 3 4 5 6 3 7 8 9 3, то он выдаст сначала первую и вторую 3 а потом вторую и третью. Можно конечно сделать еще один вложенный цикл, на проверку не встречалась ли цифра уже в пройденном участке.
Yandex
Объявления
19.03.2012, 06:20     В массиве целых чисел найти и распечатать все пары одинаковых чисел
Ответ Создать тему
Опции темы

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