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

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

Войти
Регистрация
Восстановить пароль
 
enotik
1 / 1 / 0
Регистрация: 20.10.2010
Сообщений: 147
#1

Удаление из массива повторяющихся элементов - C++

11.12.2010, 23:49. Просмотров 873. Ответов 6
Метки нет (Все метки)

Значит,задача : удалить повторы в массиве, оставив по одному вхождению!

моя идея. если 2 компонента, стоящие рядом, равны друг другу, начиная с первго делаю сдвиг в право, и удаляю последний элемен.

почему-то местами работает неверно
вот например ввожу массив:
1 1 1 1 3 5
получаю результат:
1 1 3 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
#include <stdio.h>
#include <math.h>
void main ()
{int x[20],i,k,c,j,g=0,min,imin;
printf("Enter number of elements ");
scanf("%d",&k);
for(i=0;i<k;i++)
{printf("Enter %d element ",i+1);
scanf("%d",&x[i]);}
printf ("Dannii massiv\n");
for(i=0;i<k;i++)
printf("%d ",x[i]);printf("\n");
 
for(i=0;i<k;i++)
{for(j=i+1;j<k;j++)
if (x[j]==x[i])
{for(c=j;c<k-1;c++){x[c]=x[c+1];}k--;}}
 
 
 
 
printf("\n New massiv: \n");
for(i=0;i<k;i++)
printf("%d ",x[i]);
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
11.12.2010, 23:49
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Удаление из массива повторяющихся элементов (C++):

Сохранение строки в массив и удаление повторяющихся элементов массива - C++
Нужно сделать так, что бы строка занасилась в массив без повтора элементов.(к примеру строка: &quot;Травка зеленеет, солнышко блестит.&quot; , а в...

Удаление повторяющихся чисел из массива - C++
допустим есть массив a={1,1,1,1,54,84,63,554,54,85,32,84,1,2,6,85} нужно в массиве оставить все числа по одному экземпляру:...

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

Удаление повторяющихся элементов из списка - C++
Всем привет! Прошу помощи, надо написать функцию удаления всех повторяющихся элементов из списка. Например надо получить из a b g c d a b c...

Удаление из вектора повторяющихся элементов - C++
есть вектор vector&lt;int&gt; array; я считаю в него из файла, подскажите как мне удалить одинаковые цифры, то есть если есть 10 и 10 должно...

Удаление повторяющихся элементов в векторе - C++
Нужно перегрузить унарный оператор ~ что бы он удалял повторяющиеся элементы в векторе vector&amp; operator ~ () { if (count &gt; 0) ...

6
valeriikozlov
Эксперт С++
4681 / 2507 / 322
Регистрация: 18.08.2009
Сообщений: 4,550
12.12.2010, 07:01 #2
[C]{for(c=j;c<k-1;c++){x
C
1
=x[c+1];}k--;}}
заменить на:
[C]{for(c=j;c<k-1;c++){x
C
1
=x[c+1];}k--;i--;}}
0
enotik
1 / 1 / 0
Регистрация: 20.10.2010
Сообщений: 147
12.12.2010, 12:56  [ТС] #3
Не помогло((((
0
valeriikozlov
Эксперт С++
4681 / 2507 / 322
Регистрация: 18.08.2009
Сообщений: 4,550
12.12.2010, 14:28 #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
#include <stdio.h>
#include <math.h>
void main ()
{int x[20],i,k,c,j,g=0;
printf("Enter number of elements ");
scanf("%d",&k);
for(i=0;i<k;i++)
{printf("Enter %d element ",i+1);
scanf("%d",&x[i]);}
printf ("Dannii massiv\n");
for(i=0;i<k;i++)
printf("%d ",x[i]);printf("\n");
 
for(i=0;i<k;i++)
{for(j=i+1;j<k;j++)
if (x[j]==x[i])
{for(c=j;c<k-1;c++){x[c]=x[c+1];}k--;i--;}}
 
 
 
 
printf("\n New massiv: \n");
for(i=0;i<k;i++)
printf("%d ",x[i]);
}
0
enotik
1 / 1 / 0
Регистрация: 20.10.2010
Сообщений: 147
12.12.2010, 14:57  [ТС] #5
Неа, все равно работает неправильно.
Сейчас ввела : 1 1 1 1 5 7
Результат: 1 1 5 7
0
valeriikozlov
Эксперт С++
4681 / 2507 / 322
Регистрация: 18.08.2009
Сообщений: 4,550
12.12.2010, 16:27 #6
Цитата Сообщение от enotik Посмотреть сообщение
Неа, все равно работает неправильно.
Сейчас ввела : 1 1 1 1 5 7
Результат: 1 1 5 7
Чудеса да и только.
0
enotik
1 / 1 / 0
Регистрация: 20.10.2010
Сообщений: 147
12.12.2010, 19:09  [ТС] #7
что же делать...( как. вообще ничего не понятно(((
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
12.12.2010, 19:09
Привет! Вот еще темы с ответами:

Удаление повторяющихся элементов в односвязном списке - C++
Добрый день! Задание такое: построить линейный список из нескольких динамических переменных, содержащих вводимые целые числа....

Удаление из строки повторяющихся элементов (через функцию) - C++
Добрый день! #include &lt;iostream&gt; #include &lt;math.h&gt; using namespace std; //Удаление повторяющихся элементов в алфавите ...

Сравнение двух векторов <string>, удаление повторяющихся элементов - C++
# include &lt;iostream&gt; # include &lt;vector&gt; # include &lt;iterator&gt; # include &lt;string&gt; # include &lt;fstream&gt; # include &lt;cstdio&gt; #...

Найти число повторяющихся элементов массива - C++
Здравствуйте, уважаемые знатоки IT-программировании! Помогите мне решить эту задачу: &quot;Дан массив А(20). Нужно найти число повторяющихся...


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

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Опции темы

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