Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.56/9: Рейтинг темы: голосов - 9, средняя оценка - 4.56
0 / 0 / 0
Регистрация: 08.03.2016
Сообщений: 8

Перед каждым нулем в массиве вставить удвоенное число, стоящее после нуля

08.03.2016, 19:07. Показов 1939. Ответов 8
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте, задача состоит в том, чтобы после каждого нуля в массиве, вставить перед ним число, стоящее за нулём, увеличенное в двое. Причём использовать для этого отдельную функцию. Массив динамический, размерность задаётся с клавиатуры.
ПС. нулей несколько.
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
08.03.2016, 19:07
Ответы с готовыми решениями:

В массиве X[N] перед каждым чётным элементом вставить его удвоенное значение
Буферный массив не использовать. Размерность и элементы массива вводит пользователь. Помогите пожалуйста с кодом.

Во втором массиве вставить число z после и перед каждым числом, заканчивающееся на число k
Помогите исправить программу! Необходимо, чтобы во втором массиве мы вставили число z после и перед каждым числом, заканчивающееся на...

Вывести на экран число, стоящее перед минимальным и число, стоящее после максимального
Как вывести на экран число, стоящее перед минимальным и число, стоящее после максимального. using System; using...

8
4 / 4 / 9
Регистрация: 07.03.2016
Сообщений: 44
09.03.2016, 04:14
Цитата Сообщение от MrDreek Посмотреть сообщение
после каждого нуля в массиве, вставить перед ним число, стоящее за нулём
Я так и не понял,где вставить?За нулём или перед нулём?Или вообще просто за каждым нулём увеличить число в два раза?
0
0 / 0 / 0
Регистрация: 08.03.2016
Сообщений: 8
09.03.2016, 08:47  [ТС]
Перед каждым нулём вставить число, стоящее после этого нуля, увеличенное на два
0
18 / 18 / 15
Регистрация: 05.03.2016
Сообщений: 67
09.03.2016, 10:20
Вот без функции, думаю переделать не составит труда. Все что успел сделать, нужно бежать)
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
int main()
{
   int num;
   cout << "Size: ";
   cin >> num;
 
    int *ptrarray = new int[num];
 
    for(int i=0; i<num; i++)
    {
        cin >> ptrarray[i];
    }
 
    for(int i=0; i<num-1; i++)
    {
        if (ptrarray[i] == 0)
        {
            int buff;
            buff = 2*ptrarray[i+1];
            ptrarray[i-1] = buff;
        }
    }
 
    for(int i=0; i<num; i++)
    {
        cout << ptrarray[i] << " ";
    }
    return 0;
}
1
0 / 0 / 0
Регистрация: 08.03.2016
Сообщений: 8
09.03.2016, 10:24  [ТС]
Всё, конечно, замечательно, ноне мы теряем данные, на которые вставляем значение, нужно сдвинуть значения в массиве, вот в чём проблема
0
1617 / 1182 / 553
Регистрация: 08.01.2012
Сообщений: 4,561
09.03.2016, 10:28
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
void print(int *a,int n)
{
    for(int i=0; i<n; i++) cout<<a[i]<<" ";
    cout<<endl;
}
int* insert(int *a,int&n)
{
    int nz=0;
    for(int i=0; i<n; i++) if(!a[i]) nz++;
    if(!nz) return a;
    int *b=new int[n+nz];
    int j=0;
    for(int i=0; i<n; i++)
    {
        if(!a[i] && i<n-1) b[j++]=a[i+1]*2;
        b[j++]=a[i];
    }
    delete[] a;
    n+=nz;
    return b;
}
void main()
{
    int *a,n;
 
    setlocale(LC_ALL,"Rus");
    cout<<"Размер массива: ";
    cin>>n;
    a=new int[n];
    srand((unsigned)time(0));
    for(int i=0; i<n; i++) a[i]=rand()%3;
    print(a,n);
    a=insert(a,n);
    print(a,n);
    delete[] a;
1
0 / 0 / 0
Регистрация: 08.03.2016
Сообщений: 8
09.03.2016, 10:35  [ТС]
Спасибо, выглядит работоспособно, вечером приду домой, по теструю
0
1617 / 1182 / 553
Регистрация: 08.01.2012
Сообщений: 4,561
09.03.2016, 12:20
Лучший ответ Сообщение было отмечено MrDreek как решение

Решение

да хоть затестируйся
C++
1
2
3
4
5
int* insert(int *a,int&n)
{
    int nz=0;
    for(int i=0; i<n; i++) if(!a[i] && i<n-1) nz++;
    ...............
1
0 / 0 / 0
Регистрация: 08.03.2016
Сообщений: 8
11.03.2016, 16:35  [ТС]
Великолепно, всё работает, спасибо большое, осталось разобраться почему, но это уже сам!
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
11.03.2016, 16:35
Помогаю со студенческими работами здесь

Перед каждым чётным элементом массива вставить его удвоенное значение
#include &quot;stdafx.h&quot; #include &quot;stdafx.h&quot; #include &lt;math.h&gt; #include &lt;stdio.h&gt; #include &lt;windows.h&gt; #include &lt;stdlib.h&gt; #include...

Перед каждым нечетным элементом файла вставить удвоенное значение этого элемента
В типизированный файл, компонентами которого являются целые числа, перед каждым нечетным элементом вставить удвоенное значение этого...

Вставить число перед каждым восклицательным знаком в строке
Приведено некоторое число.Вставить его перед каждым восклицательным знаком. Вот код #include &lt;stdio.h&gt; #define h 256 ...

Перед каждым вторым отрицательным значением в массиве вставить нулевое значение
Дан вещественный массив. Перед каждым вторым отрицательным значением в вещественном массиве вставить нулевое значение.

Вставить произвольное число K перед каждым отрицательным элементом массива
Вставить произвольное число K перед каждым отрицательным элементом массива. Не могу понять, что нужно исправить, что бы программа работала...


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

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Новые блоги и статьи
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip На первой гифке отладочные линии отключены, а на второй включены:. . .
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip Сканируйте QR-код на мобильном и вы увидите, что появится джойстик для управления главным героем. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru