Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 5.00/6: Рейтинг темы: голосов - 6, средняя оценка - 5.00
75 / 22 / 12
Регистрация: 01.06.2019
Сообщений: 568
1

Вставить число 0 в середину на k место, сделать через указатель

29.08.2019, 19:42. Показов 1090. Ответов 3
Метки нет (Все метки)

Вставить число 0 в середину на k место (0<=k<=10) массива М (20), сдвинув вправо значения элементов массива. Выделить память сразу под 21 элемент.

Все обращения к элементам массивов производить через указатель.
0

Помощь в написании контрольных, курсовых и дипломных работ здесь.

Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
29.08.2019, 19:42
Ответы с готовыми решениями:

Вставить число 0 в середину массива
Вставить число 0 в середину массива M(20), предварительно сдвинув вправо значения элементов...

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

Вставить число 0 в середину массива
Буду очень благодарен если поможете исправить коды : 1 Задача : Вставить число 0 в середину...

Вставить заданное число a в середину массива
Дан одномерный массив x . Вставить заданное число a в середину массива.

3
567 / 406 / 132
Регистрация: 22.11.2017
Сообщений: 1,043
29.08.2019, 20:08 2
Rudman132, привет!
Так что ли?
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
#include <iostream>
 
int main()
{   
    const size_t count_all = 21u;
    const size_t count = count_all - 1;
    const int set_value = 0;
    const size_t set_idx = 14u; //k место
 
    int* m = new int[count_all] {0};
    size_t distance = 0u;
    for (auto ptr = m; ptr != m + count; ++ptr)
        std::cout << (*ptr = distance++) << " ";
    std::cout << "\n";
 
    int old_value = set_value;
    for (size_t idx = 0u; idx < count_all; ++idx)
        if (idx >= set_idx)
        {
            int temp = *(m + idx);
            *(m + idx) = old_value;
            old_value = temp;
        }
    for (auto ptr = m; ptr != m + count_all; ++ptr)
        std::cout << *ptr << " ";
    std::cout << "\n";
 
    return 0;
}
1
6280 / 4263 / 2455
Регистрация: 18.12.2017
Сообщений: 13,295
29.08.2019, 22:45 3
Лучший ответ Сообщение было отмечено Rudman132 как решение

Решение

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
#include <iostream>
#include <cstdlib>
#include <ctime>
using namespace std;
 
int main()
{
    srand((int)time(0));
    const int n=21;
    int a[n], k;
    
    for (int* pa = a; pa < a+n-1; pa++)    
    { 
        *pa=rand()%9 + 1;   
        cout << *pa << " ";       
    }       
    cout << "\n";    
    
    cout << "k="; cin >> k;
    
    for (int* pa = a+n-1; pa >= a+k; pa--)    
        *pa=*(pa-1);
        
    *(a+k-1)=0;           
            
    for (int* pa = a; pa < a+n; pa++)   
        cout << *pa << " ";             
    cout << "\n";
 
system("pause");
return 0;
}
1
812 / 500 / 210
Регистрация: 19.01.2019
Сообщений: 1,196
29.08.2019, 23:20 4
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#include <iostream>
#include <numeric>
 
int main() {
    int arr[21], k;
    std::iota(arr, arr + 20, 1);
    std::cout << "k: ";
    std::cin >> k;
    memmove(arr + k + 1, arr + k, sizeof(int) * (20 - k));
    *(arr + k) = 0;
    for (int* it = arr; it != arr + 21; ++it) {
        std::cout << *it << ' ';
    }
 
    return 0;
}
2
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
29.08.2019, 23:20

Помощь в написании контрольных, курсовых и дипломных работ здесь.

Вставить заданное число a в середину массива
2. Дан одномерный массив x. Вставить заданное число a в середину массива.

Указатели, вставить число в середину, сдвинув остальные элементы
Вставить число 0 в середину на k место (0&lt;=k&lt;=10) массива М (20), сдвинув вправо значения элементов...

Если в слове четное число букв, то в его середину вставить пробел
Ребята, помоготе решить одну проблему. Дана задача: Ввод в строку слов, найти найменшие из них:...

На 10-е место одномерного массива вставить заданное число
На 10-е место одномерного массива вставить заданное число.


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

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

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