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

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

Войти
Регистрация
Восстановить пароль
 
Prince
3 / 3 / 0
Регистрация: 06.01.2010
Сообщений: 10
#1

Массив - C++

06.01.2010, 00:38. Просмотров 364. Ответов 2
Метки нет (Все метки)

Дана последовательность чисел, которая имеет одинаковые элементы. Отсортировать по возрастанию методом выбора , исключить одинаковые элементы.
Сама сортировка понятна. А как исключить одинаковые элементы? Помогите. На С
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
06.01.2010, 00:38     Массив
Посмотрите здесь:

C++ Безопасный массив (массив с контролем границ)
C++ Заполнить массив A и массив B нулями
Условие умножение массив на массив(матрицы) C++
объявить массив 5на5. 3аполнить массив '0' C++
C++ слить массив А и В по 100 элементов в массив С из 200 элементов так,чтобы элементы А и В чередовались по 10 в c++
Передать массив I(10) в массив J(10) в обратной последовательности C++
Многомерный массив и массив массивов C++
Передать массив I в массив J в обратной последовательности C++
Строковый массив в int массив C++
C++ Дан массив А[13], переписать его в массив B
Почему массив не присвоился в другой массив? C++
Массив: Проверить, отсортирован ли массив по возрастанию. C++

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Sergey_O
 Аватар для Sergey_O
5 / 5 / 1
Регистрация: 09.12.2009
Сообщений: 65
06.01.2010, 00:42     Массив #2
прокручиваешь массив, сохраняешь повторяющиеся символы
создаешь дополнительный дин.массив, копируешь все символы из первого, кроме сохраненных ранее
копируешь новый массив в старый, динамический удаляешь

я себе это так представляю))
easybudda
Эксперт С++
 Аватар для easybudda
9412 / 5435 / 917
Регистрация: 25.07.2009
Сообщений: 10,428
06.01.2010, 03:48     Массив #3
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
57
58
59
60
61
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
 
/* возвращает индекс наименьшего элемента */
size_t minPos(int *arr, size_t low_pos, size_t high_pos){
    int min_val;
    size_t min_pos;
    
    min_val = arr[low_pos];
    min_pos = low_pos;
    
    for ( ++low_pos; low_pos <= high_pos; ++low_pos ){
        if ( arr[low_pos] < min_val ){
            min_val = arr[low_pos];
            min_pos = low_pos;
        }
    }
    
    return min_pos;
}
 
/* меняет местами значения массива */
void swapVals(int *arr, size_t x, size_t y){
    int z;
    z = arr[x];
    arr[x] = arr[y];
    arr[y] = z;
}
 
/* сортирует по убыванию значения массива от нижнего до верхнего индекса */
void sort(int *arr, size_t low_pos, size_t high_pos){
    size_t i, min_pos;
    
    for ( i = low_pos; i < high_pos; ++i )
        if ( ( min_pos = minPos(arr, i, high_pos) ) != i )
            swapVals(arr, i, min_pos);
}
 
#define ARRSIZE 10
int main(void){
    int arr[ARRSIZE];
    size_t i;
    
    srand(time(NULL));
    for ( i = 0; i < ARRSIZE; ++i )
        arr[i] = rand() % 10;
    
    printf("\nUnsorted: ");
    for ( i = 0; i < ARRSIZE; ++i )
        printf("%d ", arr[i]);
    printf("\nSorted:   ");
    sort(arr, 0, ARRSIZE - 1);
    printf("%d ", arr[0]);
    for ( i = 1; i < ARRSIZE; ++i )
        if ( arr[i] != arr[i - 1] )
            printf("%d ", arr[i]);
    printf("\n");
    
    exit(0);
}
Yandex
Объявления
06.01.2010, 03:48     Массив
Ответ Создать тему
Опции темы

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