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

Удаление и вставка элементов массива - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 29, средняя оценка - 4.97
ne_waru_fortran
46 / 2 / 0
Регистрация: 02.06.2011
Сообщений: 84
04.03.2012, 15:46     Удаление и вставка элементов массива #1
Дан массив размера N и целое число K (1 ≤ K ≤ N). Перед элементом массива с порядковым номером K вставить новый элемент с нулевым значением.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
04.03.2012, 15:46     Удаление и вставка элементов массива
Посмотрите здесь:

C++ Контест "Массивы. Вставка и удаление элементов"
Удаление четных элементов массива,больших среднего арифметического всех элементов массива C++
C++ Динамический массив, удаление и вставка элементов
удаление элементов массива, совпадающих с элементами другого массива C++
C++ Удалить из массива A[N] вс отрицательные элементы.Удаление отрицательных элементов массива оформить в виде функции
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Spirited
7 / 7 / 0
Регистрация: 18.01.2009
Сообщений: 55
04.03.2012, 16:18     Удаление и вставка элементов массива #2
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
int main() {
    const int n = 100;
    int k;
    int a[n];
 
    cin >> k;
 
    a[k-1] = 0;
    for ( int i = 0; i < n; i++ )
        cout << a[i] << endl;;
 
    cin.get();
    cin.get();
 
    return 0;
}
этот код писал на коленке. перед тем как вставлять ноль нужно как-то заполнить массив, в моем коде он будет заполнен мусором
ne_waru_fortran
46 / 2 / 0
Регистрация: 02.06.2011
Сообщений: 84
04.03.2012, 21:01  [ТС]     Удаление и вставка элементов массива #3
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include <iostream.h>
#include <math.h>
int main() {
    const int n = 6;
    int k;
    int a[n];
    for (int i=0; i<n; i++)
    cin>>a[n];
    cout<<"vvedite k,k<=n ";
    cin >> k;
 
    a[k-1] = 0;
    for (  i = 0; i < n; i++ )
        cout << a[i] << endl;;
 
    cin.get();
    cin.get();
 
    return 0;
}
смотри я сделал так! но не получается(
Spirited
7 / 7 / 0
Регистрация: 18.01.2009
Сообщений: 55
04.03.2012, 22:41     Удаление и вставка элементов массива #4
Цитата Сообщение от ne_waru_fortran Посмотреть сообщение
for (int i=0; i<n; i++)
* * * * cin>>a[n];
* * * * cout<<"vvedite k,k<=n ";
* * cin >> k;
не cin>>a[n]; а cin>>a[i];
только
C++
1
cout<<"vvedite k,k<=n ";
нужно писать перед циклом
i - это счетчик

Добавлено через 2 минуты
Цитата Сообщение от Spirited Посмотреть сообщение
только
Код C++
1
cout<<"vvedite k,k<=n ";
нужно писать перед циклом
дочитался все правильно, тут нечего не меняй
ne_waru_fortran
46 / 2 / 0
Регистрация: 02.06.2011
Сообщений: 84
04.03.2012, 22:48  [ТС]     Удаление и вставка элементов массива #5
смотри что получается:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include <iostream.h>
#include <math.h>
int main() {
    const int n = 6;
    int k;
    int a[n];
    for (int i=0; i<n; i++)
        cin>>a[i];
        cout<<"vvedite k,k<=n ";
    cin >> k;
 
    a[k-1] = 0;
    for (  i = 0; i < n; i++ )
        cout << a[i] << endl;;
 
    cin.get();
    cin.get();
 
    return 0;
}
например ввожу 1 2 3 4 5 6
к=3
должно: 1 2 0 3 4 5 6
а выводит 1 2 0 4 5 6
он должен перед поставить, заменять не надо
Spirited
7 / 7 / 0
Регистрация: 18.01.2009
Сообщений: 55
04.03.2012, 22:56     Удаление и вставка элементов массива #6
но в задании написано, тупо на месте к-1 поставить значение 0, индексация массива начинается с нуля
ne_waru_fortran
46 / 2 / 0
Регистрация: 02.06.2011
Сообщений: 84
04.03.2012, 22:57  [ТС]     Удаление и вставка элементов массива #7
Перед элементом массива с порядковым номером K вставить новый элемент с нулевым значением.
вот)
Spirited
7 / 7 / 0
Регистрация: 18.01.2009
Сообщений: 55
04.03.2012, 23:23     Удаление и вставка элементов массива #8
ну значит так, создаешь массив на один элемент больше, К - это твой ключ, с этого сдвигаешь на один элемент вправо. как это сделать? есть куча способов, тебе какой, чтобы сдать лабу и забыть или оптимально и научиться?
ne_waru_fortran
46 / 2 / 0
Регистрация: 02.06.2011
Сообщений: 84
05.03.2012, 08:36  [ТС]     Удаление и вставка элементов массива #9
сдать лабу
но и оптимально бы не помешал)
Spirited
7 / 7 / 0
Регистрация: 18.01.2009
Сообщений: 55
05.03.2012, 10:50     Удаление и вставка элементов массива #10
если сдать лабу, то можно тупо создать новый массив на один элемент больше, копируешь туда до К-го элемента, после него вставляешь - 0, после переносишь все остальное. повторюсь - это тупо и не оптимально по памяти.

если делать все по красоте, то нужно создать массив на один элемент больше, т.е. говориться 10 элементов массива ты создаешь 11. находишь к-й эл-нт и с этого места сдвигаешь массив на один элемент вправо.

какой вариант лучше подходит? начинай кодить, если что-то не получится - пиши помогу.
ne_waru_fortran
46 / 2 / 0
Регистрация: 02.06.2011
Сообщений: 84
05.03.2012, 17:06  [ТС]     Удаление и вставка элементов массива #11
ok
vtoroi variant lu4we
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
05.03.2012, 17:20     Удаление и вставка элементов массива
Еще ссылки по теме:

Создание одномерных массивов, поиск, вставка и удаление элементов C++
C++ Динамические одномерные массивы. Удаление и вставка элементов
Vector, список. Удаление и вставка элементов C++

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

Или воспользуйтесь поиском по форуму:
Spirited
7 / 7 / 0
Регистрация: 18.01.2009
Сообщений: 55
05.03.2012, 17:20     Удаление и вставка элементов массива #12
тогда кодь, будет не получатся - пиши, помогу.
Yandex
Объявления
05.03.2012, 17:20     Удаление и вставка элементов массива
Ответ Создать тему
Опции темы

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