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

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

Войти
Регистрация
Восстановить пароль
 
golovw
0 / 0 / 0
Регистрация: 14.10.2012
Сообщений: 5
#1

Сжать массив путём удаления нулей - C++

15.10.2012, 00:49. Просмотров 809. Ответов 4
Метки нет (Все метки)

Нужно написать программу которая сжимает массив путём удаления нулей (если они есть), не используя
вспомагательный массив. Буду очень благодарен!!!!!
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
15.10.2012, 00:49     Сжать массив путём удаления нулей
Посмотрите здесь:

Массив состоит из нулей и единиц. Сформировать массив,состоящий из нулей и подсчитать их количество - C++
Массив А состоит из 0-й и 1-ц.сформировать одномерный массив В(К),состоящий из нулей,и подсчитать их количество

Сжать массив, выбросив из него отрицательные элементы - массив становится пустым - C++
Задачка такая: Разработать программу, обеспечивающую ввод с клавиатуры целых чисел и сохранение их в одномерном массиве. Ввод...

Дан целочисленный массив размера N. Сжать массив, удалив из него все элементы, модуль которых не превышает 1 - C++
Помогите пожалуйста написать программу: Дан целочисленный массив размера N. Сжать массив, удалив из него все элементы, модуль которых не...

Дан целочисленный массив размера N. Сжать массив, удалив из него все элементы, модуль которых не превышает 1 - C++
Помогите пожалуйста написать программу. Дан целочисленный массив размера N. Сжать массив, удалив из него все элементы, модуль которых не...

Сжать массив - C++
Задание: сжать массив, удалив из него вс енулевые элементы! Вот мой первый вариант, он работает, но мне он не нравиться #include...

сжать массив - C++
помогите пожалуйста Сжать заданный массив b1, b2,...,bm отбрасыванием нулевых элементов!решить с и спользованием функций

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Detweeted
1 / 1 / 0
Регистрация: 10.10.2012
Сообщений: 21
15.10.2012, 01:15     Сжать массив путём удаления нулей #2
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
#include <stdio.h>
#include <conio.h>
 
void main(void)
{
    const int N=1000;
    int i, j, z, k;
    char a[N]; //Наш массив
    char c;   //Вводимый с клавиатуры символ
    for (i=0; (c=getchar())!='\n' && i<N; i++)
        a[i]=c;  //Вводимые символы отправляются в массив
    for (j=0; j<i; j++)  //начинаем просматривать массив на нули
    {
        if (a[j]=='0')  
            {
                for (z=j; z<i-1; z++)  //Сдвиг на символ влево
                a[z]=a[z+1];
                --i;  //т.к. произошел сдвиг, длина массива уменьшилась на 1
                --j;  //Этот индекс уменьшаем на 1 на случай, если подряд идут несколько нулей
            }
    }
    for (k=0; k<i; k++) //печать массива уже без нулей
        printf("%c", a[k]);
    getch();
}
panicwassano
591 / 559 / 20
Регистрация: 07.11.2010
Сообщений: 2,004
15.10.2012, 14:39     Сжать массив путём удаления нулей #3
массив какого типа требуется в задании? если несимвольный то предыдущее задание вам не подойдет
Арсенал
144 / 66 / 6
Регистрация: 30.12.2011
Сообщений: 137
15.10.2012, 15:07     Сжать массив путём удаления нулей #4
golovw,

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>
 
using namespace std;
 
int main()
{
    int arr[] = {0, 1, 2, 4, 0, 6, 4, 0, 2, 4, 6, 8, 9, 7, 3, 0};
    const int N = sizeof(arr)/sizeof(arr[0]);
 
    cout << "Initialize array:\n";
    for (int i=0; i<N; ++i)
        cout << arr[i] << " ";
    cout << endl;
 
    int def = 0;
    for (int i=0; i<N; ++i)
    {
        if (!arr[i])
            ++def;
        else
            arr[i-def] = arr[i];
 
    }
 
    cout << "Array after processing:\n";
    for (int i=0; i<N-def; ++i)
        cout << arr[i] << " ";
    cout << endl;
 
    cin.get();
 
}
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
15.10.2012, 15:36     Сжать массив путём удаления нулей
Еще ссылки по теме:

Сжать массив - C++
Помогите пожалуйста! Задача: Сжать массив, удалив из него элементы, модуль которых не превышает единицу. Освободившиеся в конце массива...

Сжать и отсортировать массив - C++
Дан массив а (n). Переписать в массив b(n) только положительные элементы массива а, деленные на 3 (со сжатием, без пустых элементов...

Сжать массив-как это сделать? - C++
Здравствуйте, у меня вот тут задание такое есть,не знаю как сделать. Задача: Сжать массив,удалив из него все элементы,модуль которых...

Сжать массив, выбросив нулевые элементы - C++
Добрый день, уважаемые мастера, прошу помочь решить две задачи. 1) Составить программу решения задачи на С ++, использовать процедуры...

Найти сумму элементов и сжать массив - C++
Условие в одномерном массиве, состоящем из n-действительных элементов, вычислить: 1) номер минимального по модулю элемента массива; ...

Сжать одномерный массив целых чисел - C++
Есть одномерный массив целых чисел от 0 - 65 535. Необходимо создать класс который сожмет этот массив, но при этом будет доступно обращению...


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

Или воспользуйтесь поиском по форуму:
John Prick
774 / 707 / 129
Регистрация: 27.07.2012
Сообщений: 2,026
Завершенные тесты: 3
15.10.2012, 15:36     Сжать массив путём удаления нулей #5
C++
1
2
3
4
#include <algorithm>
//...
    std::remove(arr, arr + SizeArr, 0);
// ...
Yandex
Объявления
15.10.2012, 15:36     Сжать массив путём удаления нулей
Ответ Создать тему
Опции темы

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