С Новым годом! Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.88/25: Рейтинг темы: голосов - 25, средняя оценка - 4.88
0 / 0 / 0
Регистрация: 08.11.2019
Сообщений: 48
1

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

08.06.2020, 20:31. Показов 5115. Ответов 5
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Здравствуйте! Помогите пожалуйста убрать из уже отсортированного массива повторяющиеся элементы!!!

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
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
 
int main()
{
    int m[3], max, tmp, i, j, pos;
    srand(time(NULL));
    
    for (int i = 0; i < 3; i++)
         m[i] = rand() % 101;
 
    max = m[0];
 
    for (int i = 0; i < 3; i++)
        printf("%d\n", m[i]);
 
    for (int i = 0; i < 3; i++) 
    {
        if (m[i] > max) 
        {
            max = m[i];
        }
    }
    for (int i = 0; i < 3; i++) 
    {
        if (m[i] == max) 
        {
            printf("Максимальное значение: %d Индекс: %d\n", max, i);
        }
    }
    for(i = 0; i < 3; ++i) 
    { 
        pos = i; 
        tmp = m[i];
        for(j = i + 1; j < 3; ++j)
        {
            if (m[j] < tmp) 
            {
               pos = j; 
               tmp = m[j]; 
            }
        }
        m[pos] = m[i]; 
        m[i] = tmp;
        for(j = i + 1; j < 3; ++j)
        {
            if
        }
    }
        
    for(i = 0; i<3; ++i)
        printf("%d\n", m[i]);
    return 0;
}
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
08.06.2020, 20:31
Ответы с готовыми решениями:

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

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

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

Удаление повторяющихся элементов массива
Ребят, как можно вывести только неповторяющиеся элементы массива двумерного??? using System;...

5
653 / 466 / 183
Регистрация: 23.04.2019
Сообщений: 1,987
08.06.2020, 21:01 2
1. Лучше использовать vector или list
2. Что вы имеете ввиду под "удалением элемента из статического массива"
0
0 / 0 / 0
Регистрация: 08.11.2019
Сообщений: 48
08.06.2020, 21:56  [ТС] 3
Добавлено через 28 секунд
Цитата Сообщение от AndryS1 Посмотреть сообщение
1. Лучше использовать vector или list
2. Что вы имеете ввиду под "удалением элемента из статического массива"
Задача была в массиве с случайными числами выбрать максимальное, а после отсортировать его по возрастанию с удалением одинаковых чисел, то есть если есть 6 6 то остается только одна 6. Как это сделать для меня загадка
0
653 / 466 / 183
Регистрация: 23.04.2019
Сообщений: 1,987
08.06.2020, 22:40 4
Как вы хотите 'удалить' элемент?
Изменить размер статического массива в рантайме, вроде как нельзя

Добавлено через 2 минуты
Первый ответ тут ясно говорит "Размер массивов статичный в С++, вы не можете изменить его динамически!"
0
9 / 6 / 3
Регистрация: 16.02.2020
Сообщений: 28
08.06.2020, 23:12 5
Цитата Сообщение от foxigerl2010 Посмотреть сообщение
Задача была в массиве с случайными числами выбрать максимальное, а после отсортировать его по возрастанию с удалением одинаковых чисел, то есть если есть 6 6 то остается только одна 6. Как это сделать для меня загадка
в статическом массиве вы это не зделаете , вам нужно использовать динамический массив
потом посчитать сколько символов повторяется и соответственно создать новый массив с уменьшенным размером и просто перенести данные с 1 массива в другой

создание массива
C++
1
2
int sz=3;
 int* m=new int [sz];
вычисление повторяющихся чисел

C++
1
2
3
4
5
6
7
8
9
10
11
12
int  sz_cnt=0;
for (int i=0 ; i<sz-1;i++)
 { 
int cnt=0,
for (int j=i+1 ; j<sz;j++)
      {  if (m[i]==m[j]);
              cnt++; 
               break;
        }
if (!cnt )
sz_cnt++;
}
создание нового массива
C++
1
int* m1=new int [sz_cnt];
копирование нужных значений
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
int  indx=0;
for (int i=0 ; i<sz-1;i++)
 { 
int cnt=0,
for (int j=i+1 ; j<sz;j++)
      {  if (m[i]==m[j]);
              cnt++; 
               break;
        }
if (!cnt )
    { m1 [indx]=m[i];
      indx++;
     }
}
только в конце не забудьте уничтожить динамический массив
0
12 / 10 / 4
Регистрация: 30.05.2020
Сообщений: 24
09.06.2020, 23:15 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
30
31
#include <vector>
#include <algorithm>
#include <iostream>
#include <iterator>
#include <set>
 
#include <cstdlib>
#include <ctime>
 
int main(int argc, char* argv[])
{
    std::srand(std::time(NULL));
 
    const size_t size = 10;
    const int range = 101;
    std::vector<int> data(size);
    for (size_t i = 0; i < size; ++i)
    {
        data[i] = std::rand() % range;
    }
 
    std::cout << "Max = " << *std::max_element(data.cbegin(), data.cend()) << std::endl;
 
    // Sort using set
    std::set<int> sorted_data;
    std::for_each(data.cbegin(), data.cend(), [&sorted_data](const int item) {sorted_data.insert(item); });
    // Print result vector
    std::copy(sorted_data.cbegin(), sorted_data.cend(), std::ostream_iterator<int>(std::cout, " "));
 
    return 0;
}
0
09.06.2020, 23:15
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
09.06.2020, 23:15
Помогаю со студенческими работами здесь

Удаление из массива повторяющихся элементов
Как в массиве убрать одно из повторяющихся чисел??? тоесть дан массив 1,1,2,3,4,6,3,2,1 получить...

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

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

Удаление повторяющихся элементов массива в коде расширения Copy All Links для Firefox
Друзья! Всё ли верно в этом коде? Он, я так понял, удаляет дубликаты из массива newArray ...

Найти количество элементов, кратных 3 среди четырех наибольших элементов отсортированного по убыванию массива F(14)
Найти количество элементов, кратных 3 среди четырех наибольших элементов отсортированного по...

Вывод отсортированного массива с индексами элементов до сортировки
ЗАДАЧА: известны номера пловцов от 0 до n. Необходимо определить по результатам соренований, какое...


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

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru