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

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

Войти
Регистрация
Восстановить пароль
 
Лёха_
0 / 0 / 0
Регистрация: 02.05.2011
Сообщений: 25
#1

Массив: Напишите функцию, которая «убирает» из массива дубли. - C++

19.06.2012, 13:11. Просмотров 672. Ответов 5
Метки нет (Все метки)

Помогите пожалуйста. Я знаю что лёгкое задание ну что то я туплю(..

Создайте одномерный массив (размерность вычисляется в процессе выполнения программы), заполните его значениями. Напишите функцию, которая «убирает» из массива дубли.
Подсказка: при этом размер массива должен уменьшиться!
Для проверки напишите функцию, которая выводит значения всех элементов на экран

Добавлено через 9 минут
Помогите пожалуйста.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
19.06.2012, 13:11
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Массив: Напишите функцию, которая «убирает» из массива дубли. (C++):

Напишите функцию, которая убирает все лишние пробелы и табуляции в строке - C++
Напишите пожалуйста функцию, которая убирает все лишние пробелы и табуляции в строке. Добавлено через 23 часа 10 минут upp

Напишите функцию, которая проверяет, отсортирован ли массив - C++
Напишите функцию, которая проверяет, отсортирован ли массив вещественных чисел по невозрастанию. Она возвращает true, если отсортирован, и...

Напишите функцию, которая заполняет массив случайными числами - C++
Напишите функцию, которая заполняет массив случайными числами. Массив содержит элементы типа unsigned int. Массив передается в функцию...

Напишите функцию, которая вычисляет максимальный элемент массива - C++
Напишите функцию, которая вычисляет максимальный элемент массива. Массив содержит элементы типа double. Массив передается в функцию через...

Напишите функцию, которая проверяет, отсортирован ли массив вещественных чисел - C++
4. Напишите функцию, которая проверяет, отсортирован ли массив вещественных чисел по неубыванию. Она возвращает true, если отсортирован, и...

Напишите функцию, которая вычисляет среднее арифметическое элементов массива - C++
Напишите функцию, которая вычисляет среднее арифметическое элементов массива. Массив содержит элементы типа unsigned long long. Массив перед...

5
Петррр
5970 / 3407 / 337
Регистрация: 28.10.2010
Сообщений: 5,926
19.06.2012, 13:14 #2
Реализуете сначала свою std::sort, готовые тут.
Потом std::unique, смотреть тут.
0
ForEveR
В астрале
Эксперт С++
7983 / 4742 / 321
Регистрация: 24.06.2010
Сообщений: 10,545
Завершенные тесты: 3
19.06.2012, 13:16 #3
Петррр, Сорт и юник - правильный подход, однако не подойдет если нужно учитывать порядок элементов.
0
Петррр
5970 / 3407 / 337
Регистрация: 28.10.2010
Сообщений: 5,926
19.06.2012, 13:18 #4
ForEveR, сейчас посмотрим, что ТС скажет.
0
David Sylva
1291 / 953 / 51
Регистрация: 17.05.2012
Сообщений: 2,687
19.06.2012, 13:40 #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
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
#include <iostream>  
#include <cstdlib>
#include <ctime>
using namespace std;  
 
void func(int*, int); 
 
int main() 
{   
    setlocale(0, "rus");
    srand((unsigned) time(0));
    int *array;  //массив
    int size;    // размер
 
    cout << "Введите размер массива "; 
    cin >> size; 
 
    array = new int [size];  // выделяем память
 
    for ( int i = 0; i < size; i++) 
    array[i] = rand() % 10;           // заполняем случайными числами
 
    cout << "Исходний массив " << endl; // выводим исходный массив
    for ( int i = 0; i < size; i++)  
        cout << array[i] << " "; 
    cout << endl << endl;
 
 
    func(array, size); // передаём в функцию
} 
 
void func( int *array, int size) 
{ 
 
    for ( int i = 0; i < size; i++) 
        for ( int j = i+1; j < size; j++) 
        if(array[i] == array[j]) // если элементы равны
        { 
            array[j] = array[size-1]; 
            size--;                      // сокращаем размер на 1
        }   
 
        cout << "Отсортированный массив " << endl;// выводим отсортированный
 
        for ( int i = 0; i < size; i++) 
            cout << array[i] << " ";  
        cout << endl;
}
0
MrGluck
Модератор
Эксперт CЭксперт С++
7492 / 4607 / 693
Регистрация: 29.11.2010
Сообщений: 12,606
19.06.2012, 16:10 #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
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
#include <iostream>
#include <cstdlib>
 
void print(int *, int);
void withoutDoubles(int *, int&);
 
int main()
{
    std::srand( time(NULL) );
    int N, *arr;
    std::cin>> N;
    arr = new int[N];
    for (int i=0; i < N; i++)
        arr[i] = rand() % 10;
    print(arr, N);
    withoutDoubles(arr, N);
    print(arr, N);
    system("pause");
    delete []arr;
    return 0;
}
 
void print(int *arr, int N)
{
    for (int i=0; i < N; i++)
        std::cout<< arr[i]<< " ";
    std::cout<< std::endl;
}
 
void withoutDoubles(int *arr, int &N)
{
    int *arr2 = new int[N], counter = 0;
    for (int i=0; i < N; i++)
    {
        bool b = false;
        for (int j=0; j < counter; j++)
            if (arr2[j] == arr[i])
            {
                b = true;
                break;
            }
        if (!b)
            arr2[counter++] = arr[i];
    }
    delete []arr;
    arr = new int[counter];
    for (int i=0; i < counter; i++)
        arr[i] = arr2[i];
    delete []arr2;
    N = counter;
}
0
19.06.2012, 16:10
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
19.06.2012, 16:10
Привет! Вот еще темы с ответами:

Напишите функцию, которая получает массив A ненулевых целых чисел размера N - C++
Напишите функцию, которая получает массив A ненулевых целых чисел размера N. Она возвращает значение последнего из тех его элементов AK,...

Напишите рекурсивную функцию, которая возвращает среднее из n элементов массива чисел - C++
Напишите рекурсивную функцию, которая возвращает среднее из n элементов массива чисел. помогите сделать с помощью функции или процедуры !...

Напишите рекурсивную функцию, которая возвращает среднее из n элементов массива чисел - C++
!!!!!

Дан массив A размера N. Напишите функцию, которая выводит его элементы в следующем порядке: - C++
Дан массив A размера N. Напишите функцию, которая выводит его элементы в следующем порядке: AN-1,A0,AN-2,A1,AN-3,A2,... . #include...


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

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

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