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

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

Войти
Регистрация
Восстановить пароль
 
povtiasd051
2 / 2 / 0
Регистрация: 06.12.2010
Сообщений: 135
#1

Одномерный массив - C++

21.07.2011, 10:48. Просмотров 325. Ответов 5
Метки нет (Все метки)

Удалить из одномерного массива все повторяющиеся элементы, оставив их первые вхождения, т.е в массиве должны остаться только различные элементы.
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
21.07.2011, 10:48
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Одномерный массив (C++):

Матрица и одномерный массив (Составить одномерный массив, содержащий количество буквенных символов в каждом из ее столбцов, подсчет символов) - C++
Помогите решить задачку: Дана матрица 5х7, элементами которой являются значения символьного типа. Составить одномерный массив, содержащий...

Массив: найти номера столбцов с положительными элементами и записать их в одномерный массив - C++
ввести двумерный массив I . найти номера столбцов с положительными элементами и записать их в одномерный массив, отобразить его на экране. ...

Массив: преобразорвать двумерный массив в одномерный и отсортировать его методом пузырька - C++
всем привет. народ помогите с прогой, конкретно с функцией sort (65 строка), она должна двухмерный массив перевести построчно в одномерный...

Массив: Все элементы массива, кратные трем, записать в одномерный массив. - C++
Дан двумерный массив размером n x n? заполненный целыми числами. Все его элементы кратные трем, записать в одномерный массив.

Переписать произвольный одномерный массив в другой массив в обратном порядке - C++
Помогите написать прогу, вот задание. Переписать произвольный одномерный массив в другой массив в обратном порядке.

Целочисленный массив с размером 4*4 .Написать прогу , формирующую одномерный массив - C++
Целочисленный массив с размером 4*4 .Написать прогу , формирующую одномерный массив. #include <iostream> using namespace std; ...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
-=ЮрА=-
Заблокирован
Автор FAQ
21.07.2011, 12:28 #2
Вот алгоритм
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
#include <iostream.h>
#include <conio.h>
 
void out_mass(int n, int *mass);
int get_not_equal_elem(int n, int *mass, int *out);
 
int main()
{
    cout<<"Enter number elements in massiv: ";
    int n;cin>>n;
    int *mass = new int[n];
    int *out  = new int[n];
    cout<<"Enter elements of massiv\r\n";
    for(int i = 0; i < n; i++)
    {
        cout<<"mass["<<i + 1<<"] = ";
        cin>>mass[i];
    }
    cout<<"Input massiv\r\n";
    out_mass(n, mass);
    int num_not_equal = get_not_equal_elem(n, mass, out);
    cout<<"Removing equal elements\r\n";
    out_mass(num_not_equal, out);
    cout<<"Press any key to continue\r\n";
    getch();
}
 
void out_mass(int n, int *mass)
{
    for(int i = 0; i < n;i++)
        cout<<mass[i]<<" ";
    cout<<endl;
}
 
int get_not_equal_elem(int n, int *mass, int *out)
{
    bool not_equal = true;
    int RetVal = 0,i,j;
    if(mass != NULL)
    {
        out[RetVal] = mass[0];
        for(i = 1; i < n; i++)
        {
            not_equal = true;
            for(j = 0; j <= RetVal; j++)
            {
                if(mass[i] == out[j])
                    not_equal = false;
            }
            if(not_equal)
            {
                RetVal++;
                out[RetVal] = mass[i];
            }
        }
    }
    return RetVal + 1;
}
1
Миниатюры
Одномерный массив  
Jupiter
Каратель
Эксперт С++
6554 / 3975 / 226
Регистрация: 26.03.2010
Сообщений: 9,273
Записей в блоге: 1
Завершенные тесты: 2
21.07.2011, 12:29 #3
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#include <algorithm>
#include <iostream>
#include <iterator>
#include <cstdlib>
#include <vector>
 
int main()
{
    std::vector< int > vec(10);
    std::generate(vec.begin(), vec.end(), [](){ return rand() % 10; });
    std::copy(vec.cbegin(), vec.cend(), std::ostream_iterator< int >(std::cout, " "));
    std::cout << std::endl;
    std::sort(vec.begin(), vec.end());
    std::copy(vec.begin()
              , std::unique(vec.begin(), vec.end())
              , std::ostream_iterator< int >(std::cout, " "));
    return 0;
}
0
Konstantin_D
14 / 14 / 2
Регистрация: 21.07.2011
Сообщений: 89
21.07.2011, 12:48 #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
#include<iostream>
using namespace std;
 
int main()
{
    const int AR_SIZE = 10; // Размер массива
    int Arr[AR_SIZE] = {3,2,5,3,4,1,2,3,7,1}; // Массив с данными
 
    //Выводим исходный массив на экран
    for (int i=0; i<AR_SIZE; i++)
        cout<<Arr[i]<<" ";
    cout<<endl;
 
    //Находим повторяющиеся элементы
    for (int i=1; i<AR_SIZE; i++)
        for (int j=0; j<i; j++)
            if (Arr[j] == Arr[i])
            {
                Arr[i] = 0; //Этот элемент нужно удалить
                    //для простоты обнуляем считая
                    //что 0 в исходном массиве не встречается
                break;
            }
    //Смотрим что получилось :)
    for (int i=0; i<AR_SIZE; i++)
        cout<<Arr[i]<<" ";
    cout<<endl;
 
    return 0;
}
0
-=ЮрА=-
Заблокирован
Автор FAQ
21.07.2011, 13:46 #5
Константин,а если в массиве нули все же встречаются???
0
Konstantin_D
14 / 14 / 2
Регистрация: 21.07.2011
Сообщений: 89
21.07.2011, 16:58 #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
52
53
54
#include<iostream>
using namespace std;
 
int main()
{
    const int AR_SIZE = 10; // Размер массива
    int Arr[AR_SIZE] = {3,0,5,3,4,1,0,3,7,1}; // Массив с данными
 
    //Выводим исходный массив на экран (для визуального контроля)
    int i, j;
    for (i=0; i<AR_SIZE; i++)
        cout<<Arr[i]<<" ";
    cout<<endl;
 
    //Массив флагов: true - элемент нужен; false - НЕ нужен
    //Массив может быть и динамическим
    bool flag[AR_SIZE];
    int count = AR_SIZE; // Количество разных элементов в массиве
 
    //Находим повторяющиеся элементы
    for (i=1; i<AR_SIZE; i++)
    {
        flag[i] = true;
        for (j=0; j<i; j++)
            if (flag[j] && Arr[j] == Arr[i])
                {
                    flag[i] = false; //Помечаем как повторяющийся
                    count--;
                    break;
                }
    }
 
    //Смотрим что получилось 
    for (i=0; i<AR_SIZE; i++)
        if (flag[i])
                                               cout<<Arr[i]<<" "; //Разные элементы
        else
            cout<<"("<<Arr[i]<<") ";//Элементы, которые повторяются
    cout<<endl;
 
    // Можем создать новый массив 
    int* p_new_arr = new int[count];
    for (i=j=0; i<AR_SIZE; i++)
        if (flag[i])
            p_new_arr[j++] = Arr[i];
    //и вывести его на экран
    cout<<"count = "<<count<<endl;
    for (i=0; i<count; i++)
        cout<<p_new_arr[i]<<" ";
    cout<<endl;
    delete [] p_new_arr;
 
    return 0;
 }
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
21.07.2011, 16:58
Привет! Вот еще темы с ответами:

Создать одномерный массив, заполнить его случайными значениями, отсортировать массив по убыванию - C++
создать одномерный массив, заполнить его случайными значениями, отсортировать массив по убыванию. получилось вот что: #include...

Дан двумерный массив 3х3. Получить одномерный массив из из отрицательных элементов матрицы. - C++
Пожалуйста, помогите решить простым методом задачку, просто не могу понять смысл ее выполнения. Дан двумерный массив 3х3.Получить...

Сформировать одномерный массив, удалить первый элемент с заданным значением, сдвинуть массив циклически - C++
1)сформировать одномерный массив целых чисел 2)удалить первый элемент с заданным значением 3)сдвинуть массив циклически на К элементов...

Организовать одномерный массив с вещественными числами и найти первый и последний отрицательный элемент массив - C++
Организовать одномерный массив с вещественными числами и найти первый и последний отрицательный элемент массива;


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
21.07.2011, 16:58
Ответ Создать тему
Опции темы

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