Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.96/27: Рейтинг темы: голосов - 27, средняя оценка - 4.96
ne_waru_fortran
46 / 2 / 1
Регистрация: 02.06.2011
Сообщений: 84
1

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

04.03.2012, 15:46. Просмотров 5054. Ответов 11
Метки нет (Все метки)

Дан массив размера N и целое число K (1 ≤ K ≤ N). Перед элементом массива с порядковым номером K вставить новый элемент с нулевым значением.

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
04.03.2012, 15:46
Ответы с готовыми решениями:

Динамический массив, удаление и вставка элементов
Имеется класс пользователя. Нужно создать динамический массив. MyClass **arr;...

Vector, список. Удаление и вставка элементов
Из входного потока сформировать вектор вещественных чисел. Удалить из вектора...

Динамические одномерные массивы. Удаление и вставка элементов
Задание: Сформировать одномерный массив целых чисел, используя датчик...

Создание одномерных массивов, поиск, вставка и удаление элементов
нужно написать 1.Сформировать одномерный массив целых чисел, используя датчик...

Удаление четных элементов массива,больших среднего арифметического всех элементов массива
Доброго времени суток! Помогите пожалуйста) Вот задание:Из массива удалить...

11
Spirited
7 / 7 / 1
Регистрация: 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;
}
этот код писал на коленке. перед тем как вставлять ноль нужно как-то заполнить массив, в моем коде он будет заполнен мусором
1
ne_waru_fortran
46 / 2 / 1
Регистрация: 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;
}
смотри я сделал так! но не получается(
0
Spirited
7 / 7 / 1
Регистрация: 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 ";
нужно писать перед циклом
дочитался все правильно, тут нечего не меняй
1
ne_waru_fortran
46 / 2 / 1
Регистрация: 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
он должен перед поставить, заменять не надо
0
Spirited
7 / 7 / 1
Регистрация: 18.01.2009
Сообщений: 55
04.03.2012, 22:56 6
но в задании написано, тупо на месте к-1 поставить значение 0, индексация массива начинается с нуля
0
ne_waru_fortran
46 / 2 / 1
Регистрация: 02.06.2011
Сообщений: 84
04.03.2012, 22:57  [ТС] 7
Перед элементом массива с порядковым номером K вставить новый элемент с нулевым значением.
вот)
0
Spirited
7 / 7 / 1
Регистрация: 18.01.2009
Сообщений: 55
04.03.2012, 23:23 8
ну значит так, создаешь массив на один элемент больше, К - это твой ключ, с этого сдвигаешь на один элемент вправо. как это сделать? есть куча способов, тебе какой, чтобы сдать лабу и забыть или оптимально и научиться?
0
ne_waru_fortran
46 / 2 / 1
Регистрация: 02.06.2011
Сообщений: 84
05.03.2012, 08:36  [ТС] 9
сдать лабу
но и оптимально бы не помешал)
0
Spirited
7 / 7 / 1
Регистрация: 18.01.2009
Сообщений: 55
05.03.2012, 10:50 10
если сдать лабу, то можно тупо создать новый массив на один элемент больше, копируешь туда до К-го элемента, после него вставляешь - 0, после переносишь все остальное. повторюсь - это тупо и не оптимально по памяти.

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

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

Контест "Массивы. Вставка и удаление элементов"
Контест &quot;Массивы. Вставка и удаление элементов&quot;

Перенос элементов из одного массива в другой (ассемблерная вставка)
Перенос элементов из одного массива в другой, так чтобы в правой части были...

Удаление из одного массива элементов второго массива и запись результата в третий
Есть массив masA (длина lenA), есть массив masB (длина lenB). Необходимо из...


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

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

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