С наступающим Новым годом! Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.67/6: Рейтинг темы: голосов - 6, средняя оценка - 4.67
blak
9 / 9 / 1
Регистрация: 05.09.2010
Сообщений: 195
1

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

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

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

Сожмите заданный массив A(N) отбрасыванием нулевых элементов
2.30*. Сожмите заданный массив A(N) отбрасыванием нулевых элементов. Добавлено через 1 минуту...

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

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

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

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

6
vitaska
90 / 90 / 15
Регистрация: 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 / 1
Регистрация: 05.09.2010
Сообщений: 195
04.04.2011, 21:32  [ТС] 3
спасибо большое!а не скажите как сделать то же самое только в обычном одномерном массиве?
0
vitaska
90 / 90 / 15
Регистрация: 04.02.2010
Сообщений: 162
04.04.2011, 22:06 4
в смысле в обычном? не динамическом?
0
blak
9 / 9 / 1
Регистрация: 05.09.2010
Сообщений: 195
04.04.2011, 22:14  [ТС] 5
да в обычном!если можно
0
vitaska
90 / 90 / 15
Регистрация: 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 / 1
Регистрация: 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

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

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

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


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

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

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