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

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

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 24, средняя оценка - 4.71
dobro
Сообщений: n/a
#1

Одинаковые элементы в массиве. - C++

18.12.2010, 10:54. Просмотров 3364. Ответов 5
Метки нет (Все метки)

Дан динамический массив, размерность которого вводится с клавиатуры. Нужно найти одинаковые элементы и вывести их следующим образом:
Выводится значение элемента и количество раз, которые он повторяется.
Если элемент не повторяется, то его номер и надпись, гласящую от том, что элемент не повторяется.
Единственная сложность заключается в следующем - как сделать так, чтобы повторяющийся элемент выводился только один раз? Сортировать массив нельзя, т.к. мы поменяем его порядковый номер в таком случае.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
18.12.2010, 10:54     Одинаковые элементы в массиве.
Посмотрите здесь:

Определить,имеются ли в двумерном массиве одинаковые элементы. C++
C++ Составить программу для проверки, есть ли в массиве одинаковые элементы. Проверить на наличие одинаковых элементов линейные таблицы А [10] и В [12]. И
Определить, содержатся ли в одномерном массиве одинаковые элементы C++
в массиве одинаковые элементы C++
Определить или в двумернам массиве есть одинаковые элементы. C++
найти одинаковые элементы в массиве/Цикл C++
Определить имеются ли в одномерном массиве одинаковые элементы C++
Указатели в функциях (составить программу для проверки, есть ли в массиве одинаковые элементы) C++
нужно разместить элементы таким образом, чтобы одинаковые элементы располагались на определенном расстоянии C++
C++ Найти одинаковые элементы в массиве
C++ Выяснить есть ли в двумерном массиве строка содержащие одинаковые элементы
Определить, имеются ли в массиве одинаковые элементы C++

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
valeriikozlov
Эксперт C++
4663 / 2489 / 321
Регистрация: 18.08.2009
Сообщений: 4,550
18.12.2010, 11:33     Одинаковые элементы в массиве. #2
Цитата Сообщение от dobro Посмотреть сообщение
Единственная сложность заключается в следующем - как сделать так, чтобы повторяющийся элемент выводился только один раз?
Можно проверить все элементы которые находятся до текущего проверяемого элемента (если есть хоть один элемент равный текущему проверяемому, то информацию по текущему проверяемому вообще не выводить).
dobro
Сообщений: n/a
18.12.2010, 13:32     Одинаковые элементы в массиве. #3
Это тоже приходило мне в голову, но всё же, как сделать, чтобы со всеми элементами происходил такой вывод?
valeriikozlov
Эксперт C++
4663 / 2489 / 321
Регистрация: 18.08.2009
Сообщений: 4,550
18.12.2010, 13:41     Одинаковые элементы в массиве. #4
Берем очередной элемент, проверяем встречался он ранее или нет. Если встречался, переходим сразу к проверке следующего элемента. Если не встречался, смотрим сколько таких же элементов встречается после этого элемента. Выводим результат. Переходим к следующему элементу.
coraline
0 / 0 / 0
Регистрация: 20.12.2010
Сообщений: 5
21.12.2010, 23:07     Одинаковые элементы в массиве. #5
а как это примерно выгдлядит в программе? как сделать поиск повторяющихся элементов?
valeriikozlov
Эксперт C++
4663 / 2489 / 321
Регистрация: 18.08.2009
Сообщений: 4,550
21.12.2010, 23:21     Одинаковые элементы в массиве. #6
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
#include "stdio.h"
int main()
{
    const int N=9;
        int A[N], i, j;
                for(i=0; i<N; i++)
                {
                        printf("[%d]= ", i);
                        scanf("%d", &A[i]);
                }
                for(i=0; i<N; i++)
                {
                        int temp=0;
                        for(j=0; j<i; j++)
                                if(A[i]==A[j])
                                        temp++;
                                if(temp==0)
                                {
                                        for(j=i+1; j<N; j++)
                                                if(A[i]==A[j])
                                                        temp++;
                                        if(temp==0)
                                            printf("Element [%d]=%d ne povtor\n", i, A[i]);
                                        else
                                            printf("Element [%d]=%d povtor %d raza\n", i, A[i], temp+1);                                                
                                }
                }
         return 0;
}
Под динамический массив наделаюсь сами сможете переделать.
Yandex
Объявления
21.12.2010, 23:21     Одинаковые элементы в массиве.
Ответ Создать тему
Опции темы

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