0 / 0 / 1
Регистрация: 07.11.2009
Сообщений: 67
1

Удалить из массива повторяющиеся элементы

16.01.2010, 10:52. Показов 34849. Ответов 11
Метки нет (Все метки)

Удалить из массива повторяющиеся элементы.жду вашим решений
__________________
Помощь в написании контрольных, курсовых и дипломных работ здесь
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
16.01.2010, 10:52
Ответы с готовыми решениями:

Из массива удалить все повторяющиеся элементы
Из заданного целочисленного массива удалить все повторяющиеся элементы, оставив только их первые...

Удалить все повторяющиеся элементы массива
Удалить все повторяющиеся элементы массива. Как сделать, чтобы элементы удалялись, а не...

Скрыть или удалить повторяющиеся элементы массива
Вот сама задача. Даны два массива. Массив А состоит из N элементов , массив В состоит из М...

Как удалить из исходного массива не повторяющиеся элементы?
Вводится длина одномерного массива и значения его элементов. Удалить из исходного массива...

11
Быдлокодер
510 / 297 / 84
Регистрация: 22.11.2009
Сообщений: 892
16.01.2010, 10:52 2
Из массива нельзя удалить элементы.
0
0 / 0 / 1
Регистрация: 07.11.2009
Сообщений: 67
16.01.2010, 11:04  [ТС] 3
ну как нельзя...
Пример 2. Удалить из одномерного массива все отрицательные элементы
Для решения данной задачи необходимо выполнить следующие действия:
C
1
2
3
4
5
6
7
8
9
for (i=0; i<n; i++)
if (a[i]<0) // Если найден отрицательный элемент, то
{
for (j=i+1; j<n; j++) // сдвинуть все элементы, стоящие
a[j-1]=a[j]; // после удаляемого на одну позицию
n--; // Уменьшение размера массива
i--; // Возврат к предыдущему индексу
}
0
эволюционирую потихоньку
468 / 466 / 91
Регистрация: 30.06.2009
Сообщений: 1,401
16.01.2010, 11:19 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
46
47
48
49
50
51
52
53
54
55
56
#include <stdio.h>
#include <conio.h>
 
int main ()
{
    int p[50];
    int i, n, j;
    int count=1;      // счётчик не повторяющихся символов
    float   res;
 
    printf("\nEnten number of elements: ");
    scanf("%u",&n);
    printf("\nEnter elements: ");
    for (i=0; i<n; i++)
        scanf("%u",&p[i]);
 
    int temp=p[0];  // певый символ исходного массива будет маркером
    for (i=1; i<n; i++)  // перебор всего массива без первого
    {
        if(p[i]!=temp)     // если символ не равен маркеру
        {
            for (j=i+1; j<n; j++)  // перебор от следующего за рассмотр. символом
                if(p[i]==p[j])     // если символы совпали
                    p[j]=temp;       // маркируем повторяющиеся
            count++;            // увеличиваем счётчик
        }
    }
    printf("\n Test: ");
    for (i=0; i<n; i++) 
    {
        printf(" %i", p[i]);
        // должны получить следующее
        // был массив: 1 2 3 4 5 5 5 3 3 ПРИМЕР!!!
        // стал      : 1 2 3 4 5 1 1 1 1 
    }
 
 
    printf("\n");
    count=0;
    // теперь удаляем все маркированные элементы
    for (i=1; i<n; i++) 
    {
        if (p[i]!=p[0])     p[++count]=p[i];
    }
 
 
    printf("\n");
  // итого
    for (i=0; i<=count; i++) 
    {
        printf(" %i", p[i]);
    }
    getch();
    return 0;
 
}
2
Maniac
Эксперт С++
1456 / 957 / 159
Регистрация: 02.01.2009
Сообщений: 2,817
Записей в блоге: 1
16.01.2010, 11:26 5
RAMON@, Размер массива не поменялся.. был изменен логический конец массива..
0
0 / 0 / 1
Регистрация: 07.11.2009
Сообщений: 67
16.01.2010, 11:37  [ТС] 6
а как надо тоггда?
0
эволюционирую потихоньку
468 / 466 / 91
Регистрация: 30.06.2009
Сообщений: 1,401
16.01.2010, 11:42 7
Цитата Сообщение от RAMON@ Посмотреть сообщение
а как надо тоггда?
это смотря что тебе надо: можно перезаписать оставшиеся элементы в новый массив, а старый удалить.
0
0 / 0 / 1
Регистрация: 07.11.2009
Сообщений: 67
16.01.2010, 11:49  [ТС] 8
мне надо самое простое решение.. со всеми библиотеками... у меня экзамен сення хоть пару примеров написать в конспект
0
Быдлокодер
510 / 297 / 84
Регистрация: 22.11.2009
Сообщений: 892
16.01.2010, 11:56 9
RAMON@, Приведенный Вами пример - смещение элементов, но никак не удаление. Повторяю - удалить элементы из массива нельзя.
0
0 / 0 / 1
Регистрация: 07.11.2009
Сообщений: 67
16.01.2010, 12:00  [ТС] 10
Цитата Сообщение от Darky Посмотреть сообщение
RAMON@, Приведенный Вами пример - смещение элементов, но никак не удаление. Повторяю - удалить элементы из массива нельзя.
ну тогда сместите все эти элементы..
0
0 / 0 / 0
Регистрация: 08.04.2010
Сообщений: 26
19.07.2010, 14:28 11
TanT, а можно как-то изменить эту часть(напр. записывая элементы до повтора в новый массив -text1), чтобы у меня каждого символа было по одному разу? :
C++
1
2
3
4
5
       // теперь удаляем все маркированные элементы
        for (i=1; i<n; i++) 
        {
                if (p[i]!=p[0])         p[++count]=p[i];
        }
Код:
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
   int k,j;
          int z=1;
          nt t=text[0];
  for(j=1;j<size;j++)
     {
       if(text[j]!=t)
        {
          for(k=j+1;k<size;k++)
             {
               if(text[j]==text[k])
               text[k]=t;
               z++;
              }
        }
      }
  z=0;
 for(j=1;j<size;j++)
  {
if (text[j]!=text[0]) text[++z]=text[j];
  }
  for(j=0;j<=z;j++)
  { Memo1->Lines->Delete(i);
  Memo1->Lines->Insert(i,text); //Здесь нужно заменить массив text на text1
  Memo2->Text=Memo1->Text;}
0
86 / 45 / 11
Регистрация: 20.12.2010
Сообщений: 216
Записей в блоге: 1
21.12.2010, 19:17 12
что вы так придираетесь к словам, это лаба по с++ с первого курса, естевственно тут надо просто "спрятать" повторяющие элементы, переместив логический конец цикла.
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
21.12.2010, 19:17

Массив. Удалить из исходного массива уникальные (не повторяющиеся) элементы
Вводится длина одномерного массива и значения его элементов. Удалить из исходного массива...

Удалить из массива повторяющиеся элементы, оставив только их первые вхождения
Помогите, зачёт пишу

Удалить из массива повторяющиеся элементы, оставив только их первые вхождения
Как мне удалять повторяющийся элемент? #include &lt;iostream&gt; using namespace std; int main ()...

Нужно удалить из массива повторяющиеся элементы, оставив только первое вхождение
Нужно удалить из массива повторяющиеся элементы, оставив только первое вхождение. Повторяющимися...


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

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

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