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

удаление из массива повторяющихся элементов! где-то маленькая ошибка! - C++

Восстановить пароль Регистрация
 
enotik
1 / 1 / 0
Регистрация: 20.10.2010
Сообщений: 147
11.12.2010, 23:49     удаление из массива повторяющихся элементов! где-то маленькая ошибка! #1
Значит,задача : удалить повторы в массиве, оставив по одному вхождению!

моя идея. если 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]);
}
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
valeriikozlov
Эксперт C++
 Аватар для valeriikozlov
4660 / 2486 / 321
Регистрация: 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--;}}
enotik
1 / 1 / 0
Регистрация: 20.10.2010
Сообщений: 147
12.12.2010, 12:56  [ТС]     удаление из массива повторяющихся элементов! где-то маленькая ошибка! #3
Не помогло((((
valeriikozlov
Эксперт C++
 Аватар для valeriikozlov
4660 / 2486 / 321
Регистрация: 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]);
}
enotik
1 / 1 / 0
Регистрация: 20.10.2010
Сообщений: 147
12.12.2010, 14:57  [ТС]     удаление из массива повторяющихся элементов! где-то маленькая ошибка! #5
Неа, все равно работает неправильно.
Сейчас ввела : 1 1 1 1 5 7
Результат: 1 1 5 7
valeriikozlov
Эксперт C++
 Аватар для valeriikozlov
4660 / 2486 / 321
Регистрация: 18.08.2009
Сообщений: 4,550
12.12.2010, 16:27     удаление из массива повторяющихся элементов! где-то маленькая ошибка! #6
Цитата Сообщение от enotik Посмотреть сообщение
Неа, все равно работает неправильно.
Сейчас ввела : 1 1 1 1 5 7
Результат: 1 1 5 7
Чудеса да и только.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
12.12.2010, 19:09     удаление из массива повторяющихся элементов! где-то маленькая ошибка!
Еще ссылки по теме:

Удаление повторяющихся элементов в векторе C++
Ошибка при обработке массива на нахождение повторяющихся элементов C++
Удаление из вектора повторяющихся элементов C++

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

Или воспользуйтесь поиском по форуму:
enotik
1 / 1 / 0
Регистрация: 20.10.2010
Сообщений: 147
12.12.2010, 19:09  [ТС]     удаление из массива повторяющихся элементов! где-то маленькая ошибка! #7
что же делать...( как. вообще ничего не понятно(((
Yandex
Объявления
12.12.2010, 19:09     удаление из массива повторяющихся элементов! где-то маленькая ошибка!
Ответ Создать тему
Опции темы

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