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

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

Войти
Регистрация
Восстановить пароль
 
Statussrg
1 / 1 / 0
Регистрация: 25.10.2014
Сообщений: 21
#1

Удалить из массива элемент с заданным ключом - C++

20.02.2015, 12:41. Просмотров 1646. Ответов 3
Метки нет (Все метки)

Прошу помочь в решении задачи на С++. Учитывая то, что только начал изучать данный язык, даже условие задачи вызывает трудности.

Постановка задачи:
Написать программу, в которой создаются динамические массивы и выполнить их обработку в соответствии со своим
вариантом.


Порядок выполнения работы:
1. Ввести размер массива;
2.Сформировать массив с помощью операции new или библиотечных функций malloc (calloc);
3.Заполнить массив (можно с помощью датчика случайных чисел);
4.Выполнить задание варианта, сформировать новый массив(ы)-результат(ы);
5.Напечатать массив(ы)-результат(ы);
6.Удалить динамические массивы с помощью операции delete или библиотечной функции free.

Вариант:
Сформировать одномерный массив. Удалить из него элемент с заданным ключом, добавить элемент с заданным ключом;

Спасибо Всем кто откликнулся!
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
20.02.2015, 12:41
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Удалить из массива элемент с заданным ключом (C++):

Сформировать двунаправленный список. Удалить из него элемент с заданным ключом, добавить элемент с указанным номером - C++
Записи в линейном списке содержат ключевое поле типа *char(строка символов). Сформировать двунаправленный список. Удалить из него элемент с...

Сформировать одномерный массив. Удалить из него К элементов, начиная с заданного номера, добавить элемент с заданным ключом - C++
Сформировать одномерный массив. Удалить из него К элементов, начиная с заданного номера, добавить элемент с заданным ключом.

Из массива удалить элемент с заданным номером - C++
Здравствуйте,у меня вот такое задание: Из одномерного динамического массива удалить элемент с заданным номером Написал программу,но...

Удалить элемент массива с заданным номером - C++
Помогите на завтра сделать лабу 1.Сформировать динамический одномерный массив, заполнить его случайными чис-лами и вывести на экран...

Сформировать однонаправленный список и добавить элемент перед элементом с заданным ключом - C++
задача: Сформировать однонаправленный список. Добавить элемент перед элементом с заданным ключом; Наиболее близко к решению...

Указатели . Удалить из одномерного массива элемент с заданным номером, добавить К элементов, начиная с заданного номера - C++
Сформировать одномерный массив. Удалить из него элемент с заданным номером, добавить К элементов, начиная с заданного номера

3
gru74ik
Модератор
Эксперт CЭксперт С++
4364 / 1940 / 210
Регистрация: 20.02.2013
Сообщений: 5,146
Записей в блоге: 22
20.02.2015, 16:32 #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
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
/*
Постановка задачи:
Написать программу, в которой создаются динамические массивы и выполнить их обработку
в соответствии со своим вариантом.
 
Порядок выполнения работы:
1. Ввести размер массива;
2.Сформировать массив с помощью операции new или библиотечных функций malloc (calloc);
3.Заполнить массив (можно с помощью датчика случайных чисел);
4.Выполнить задание варианта, сформировать новый массив(ы)-результат(ы);
5.Напечатать массив(ы)-результат(ы);
6.Удалить динамические массивы с помощью операции delete или библиотечной функции free.
 
Вариант:
Сформировать одномерный массив. Удалить из него элемент с заданным ключом,
добавить элемент с заданным ключом;
*/
#include <iostream>
#include <ctime>
#include <cstdlib>
 
int main()
{
    using namespace std;
 
    cout << "\nPlease enter the quantity of the elements: ";
    int arrSize;
    cin >> arrSize;
    int * arr_1 = new int[arrSize];
    cout << endl;
 
    srand(time(NULL));
 
    for (int i=0; i<arrSize; ++i)
    {
        arr_1[i] = 10 + rand() % 90;
        cout << arr_1[i] << " ";
    }
    cout << endl;
 
    cout << "\nPlease enter the index of the element\n"
            "that you want to delete from the array\n"
            "(remember that the first element has index of 0,\n"
            "the second has index of 1, the third has index of 2, and so on): ";
    int deleteKey;
    cin >> deleteKey;
    cout << endl;
    --arrSize;
 
    int * arr_2 = new int[arrSize];
 
    for (int i=0, j=0; i<arrSize; ++i, ++j)
    {
        if (j != deleteKey)
        {
            arr_2[i] = arr_1[j];
        }
 
        else
        {
            ++j;
            arr_2[i] = arr_1[j];
        }
 
        cout << arr_2[i] << " ";
    }
 
    cout << "\n\nPlease choose the location of the element\n"
            "that you want to insert to new array:\n"
        "1. after some element (type 1);\n"
        "2. before some element (type 2).\n";
    int choice = 0;
    cin >> choice;
 
    int insertAfter = -2;
    int insertBefore = -2;
 
    switch (choice)
    {
        case 1: cout << "\nPlease enter the index, after which you want\n"
                        "to delete the element from the array: ";
        cin >> insertAfter;
        break;
 
        case 2: cout << "\nPlease enter the index, before which you want\n"
                        "to delete the element from the array: ";
        cin >> insertBefore;
        break;
    }
 
    ++insertAfter;
    --insertBefore;
 
    cout << "\nPlease enter a value of the element\n"
            "that you want to insert to the array: ";
    int insertValue;
    cin >> insertValue;
    cout << endl;
 
    ++arrSize;
 
    for (int i=0, j=0; i<arrSize; ++i, ++j)
    {
        if (i == insertAfter || i == insertBefore)
        {
            arr_1[i] = insertValue;
            --j;
        }
 
        else
        {
            arr_1[i] = arr_2[j];
        }
 
        cout << arr_1[i] << " ";
    }
 
    delete [] arr_1;
    delete [] arr_2;
 
    return 0;
}
P.S. Пользователь программы должен помнить, что нумерация элементов массива начинается с нуля.
0
Renji
2118 / 1477 / 348
Регистрация: 05.06.2014
Сообщений: 4,306
20.02.2015, 20:13 #3
Цитата Сообщение от Statussrg Посмотреть сообщение
Сформировать одномерный массив. Удалить из него элемент с заданным ключом, добавить элемент с заданным ключом;
Элементы с ключами бывают в ассоциативных массивах, но их обычно не зовут одномерными. Не говоря уже о том, что по хорошему внутри ассоциативного массива какое ни будь там сбалансированное дерево, реализация которого - задача явно не для новичков. Так что лучше у преподавателя уточните что он сказать хотел.
1
IGPIGP
Комп_Оратор)
Эксперт по математике/физике
6967 / 3258 / 327
Регистрация: 04.12.2011
Сообщений: 9,020
Записей в блоге: 5
20.02.2015, 23:24 #4
Renji, это может быть и одномерный массив. Создание и добавление может поддерживать его упорядоченность. Ключом служит значение и это значит, что оно должно быть уникальным и это главное сходство с ассоциированным массивом. Конечно лучше, возможно, использовать список, но это уже вопрос природы данных, то есть их связи с алгоритмом. Как они добавляются, удаляются, извлекаются? (В каком порядке?)
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
20.02.2015, 23:24
Привет! Вот еще темы с ответами:

Структура "Информация": - носитель; - объем; - название; - автор. Удалить первый элемент с заданным объемом информации, добавить элемент перед элемент - C++
Структура &quot;Информация&quot;: - носитель; - объем; - название; - автор. Удалить первый элемент с заданным объемом информации, добавить...

Удалить первый элемент с заданным объемом информации, добавить элемент перед элементом с указанным номером - C++
Структура &quot;Информация&quot;: - носитель; - объем; - название; - автор. Удалить первый элемент с заданным объемом информации, добавить...

Доработка структуры (удалить первый элемент с заданным объемом информации, добавить элемент перед элементом с указанным номером) - C++
//--------------------------------------------------------------------------- ЗАДАНИЕ:Создать двоичный файл из элементов , заданных...

Удалить первый элемент с заданным значением. - C++
Удалить первый элемент с заданным значением. #include&lt;iostream.h&gt; #include&lt;stdlib.h&gt; #include&lt;math.h&gt; void main () { int...


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

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

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