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

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

Войти
Регистрация
Восстановить пароль
 
blak
9 / 9 / 0
Регистрация: 05.09.2010
Сообщений: 195
#1

Сжать массив отбрасыванием нулевых элементов - C++

04.04.2011, 20:00. Просмотров 890. Ответов 6
Метки нет (Все метки)

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

Сожмите заданный массив A(N) отбрасыванием нулевых элементов - C++
2.30*. Сожмите заданный массив A(N) отбрасыванием нулевых элементов. Добавлено через 1 минуту пожалуйста помогите с задачкой, очень...

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

Массивы. Задан массив,содержащий несколько нулевых элементов. Сжать его выбросив эти элементы. - C++
Задан массив,содержащий несколько нулевых элементов. Сжать его выбросив эти элементы.

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

Вычислить сумму элементов массива, сжать массив - C++
В одномерном массиве, состоящем из n вещественных элементов, вычислить: — сумму элементов массива с нечетными номерами; — сумму...

Массивы. Вычислить максимальный элемент массива, сумму элементов, сжать массив - C++
При написании программ использовать динамические массивы. Размерность массивов задаётся именованной константой. Задача 1.В...

6
vitaska
85 / 85 / 2
Регистрация: 04.02.2010
Сообщений: 162
04.04.2011, 21:21 #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
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
 
int main()
{
    srand( ( unsigned ) time ( NULL ) );
    int arrSize, tempSize, i, j, zeroCount = 0;
    int * mass, * temp;
    printf( "Input size of array: ");
    scanf( "%d", &tempSize );
    temp = ( int * ) malloc ( tempSize * sizeof( int ) );
    printf( "Array befour: ");
    for ( i = 0; i < tempSize; ++i ){
        temp[ i ] = rand() % 10;
        if( temp[ i ] == 0 )
            zeroCount++;
        printf( "%d ", temp[ i ] );
    }
 
    arrSize = tempSize - zeroCount;
 
    if ( arrSize != tempSize ){
        printf( "\n\nArray after:  ");
        mass = ( int * ) malloc ( arrSize * sizeof( int ) );
        for ( i = 0, j = 0; i < tempSize; ++i ){
            if ( temp[ i ] ){
                mass[ j ] = temp[ i ];
                ++j;
            }
        }
 
        for ( i = 0; i < arrSize; ++i ){
            printf( "%d ", mass[ i ] );
        }
        free( mass );
    }
    else
        printf( "\nArray does not have zero element\n\n" );
 
    free( temp );
    return 0;
}
0
blak
9 / 9 / 0
Регистрация: 05.09.2010
Сообщений: 195
04.04.2011, 21:32  [ТС] #3
спасибо большое!а не скажите как сделать то же самое только в обычном одномерном массиве?
0
vitaska
85 / 85 / 2
Регистрация: 04.02.2010
Сообщений: 162
04.04.2011, 22:06 #4
в смысле в обычном? не динамическом?
0
blak
9 / 9 / 0
Регистрация: 05.09.2010
Сообщений: 195
04.04.2011, 22:14  [ТС] #5
да в обычном!если можно
0
vitaska
85 / 85 / 2
Регистрация: 04.02.2010
Сообщений: 162
04.04.2011, 22:32 #6
это уже будет не сжатие массива, ну вообщем создай 2 одинковых по размеру массива и во второй не записвывай 0 значения циклом
C
1
2
3
4
5
6
    for ( i = 0, j = 0; i < tempSize; ++i ){
            if ( temp[ i ] ){
                mass[ j ] = temp[ i ];
                ++j;
         }
        }
затем в конец можно записать -1, вот как-то так
C
1
2
3
   for ( j; j < tempSize; ++j){
            mass[ j ] = -1;
        }
и выводить второй массив с условием, что элемент >= 0.
0
blak
9 / 9 / 0
Регистрация: 05.09.2010
Сообщений: 195
04.04.2011, 23:19  [ТС] #7
а без tempSize можно?
0
04.04.2011, 23:19
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
04.04.2011, 23:19
Привет! Вот еще темы с ответами:

Массив (Найти количество нулевых элементов) - C++
Дан массив целых чисел. Найти количество нулевых элементов.

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

Массив: С помощью рекурсии определить количество нулевых элементов. - C++
дан массив Х. С помощью рекурсии определить количество нулевых элементов.

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


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

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

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