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

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

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 29, средняя оценка - 4.97
ne_waru_fortran
46 / 2 / 0
Регистрация: 02.06.2011
Сообщений: 84
#1

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

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

Дан массив размера N и целое число K (1 ≤ K ≤ N). Перед элементом массива с порядковым номером K вставить новый элемент с нулевым значением.
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
04.03.2012, 15:46
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Удаление и вставка элементов массива (C++):

Vector, список. Удаление и вставка элементов - C++
Из входного потока сформировать вектор вещественных чисел. Удалить из вектора все элементы, у которых дробная часть < 0.5. Перед каждым...

Динамический массив, удаление и вставка элементов - C++
Имеется класс пользователя. Нужно создать динамический массив. MyClass **arr; Инициализация: arr = new MyClass*; Собственно вопрос:...

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

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

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

Контест "Массивы. Вставка и удаление элементов" - C++
Контест "Массивы. Вставка и удаление элементов"

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

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

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

Перенос элементов из одного массива в другой (ассемблерная вставка) - C++
Перенос элементов из одного массива в другой, так чтобы в правой части были элементы меньше 0, а слева больше 0 ... const int n =...

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

удаление элементов массива, которые равны сумме предыдущего и следующего элементов - C++
Нужно написать подпрограмму которая удаляет элементы массива, которые равны сумме предыдущего и следующего элементов

Удалить из массива A[N] вс отрицательные элементы.Удаление отрицательных элементов массива оформить в виде функции - C++
Что исправить? #include &lt;stdio.h&gt; #define N 10 int udalenie(int A,int k ) { int i; for(i=k;i&lt;N;i++)


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

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

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