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

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

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

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

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

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

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

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

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

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

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

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

4
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();
}
0
panicwassano
592 / 560 / 20
Регистрация: 07.11.2010
Сообщений: 2,004
15.10.2012, 14:39 #3
массив какого типа требуется в задании? если несимвольный то предыдущее задание вам не подойдет
0
Арсенал
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();
 
}
0
John Prick
802 / 735 / 145
Регистрация: 27.07.2012
Сообщений: 2,107
Завершенные тесты: 3
15.10.2012, 15:36 #5
C++
1
2
3
4
#include <algorithm>
//...
    std::remove(arr, arr + SizeArr, 0);
// ...
0
15.10.2012, 15:36
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
15.10.2012, 15:36
Привет! Вот еще темы с ответами:

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

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

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

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


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

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

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