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

Сжатие одномерного массива

30.05.2018, 15:48. Показов 6138. Ответов 5
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Написать программу, которая осуществляет сжатие одномерного массива, состоит с N вещественных элементов, и удаляет из него все элементы, модуль которых не превышает 1. Освободившиеся в конце массива элементы заполнить нулями.
0
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
30.05.2018, 15:48
Ответы с готовыми решениями:

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

сжатие массива
задание: В одномерном массиве, состоящем из n вещественных элементов, вычислить: 1) Максимальный и минимальный элемент массива 2)...

Сумма элементов массива и его сжатие
В одномерном массиве, состоящем из n вещественных элементов, вычислить: 1.) сумму элементов массива с нечетными номерами; 2.) сумму...

5
475 / 427 / 290
Регистрация: 10.03.2015
Сообщений: 1,782
30.05.2018, 16:18
Цитата Сообщение от Ywep6 Посмотреть сообщение
Написать программу, которая осуществляет сжатие одномерного массива
Цитата Сообщение от Ywep6 Посмотреть сообщение
Освободившиеся в конце массива элементы заполнить нулями
А причем тут сжатие?)
Зачем обнулять если можно удалить?

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
44
45
46
47
48
49
50
#include <iostream>
#include <ctime>
 
#define Min_Value -10
#define Max_Value 10
 
int main()
{
    srand(time(NULL));
    int n;
    std::cin >> n;
    int *arr = new int[n];
    std::cout << "Array: ";
    for (int i = 0; i < n; i++)
    {
        arr[i] = Min_Value + rand() % (Max_Value - Min_Value + 1);
        std::cout << arr[i] << " ";
    }
    std::cout << std::endl;
 
    int curPos = n;
    for (int i = 0; i < curPos; i++)
    {
        if (abs(arr[i]) <= 1)
        {
            std::swap(arr[i], arr[curPos - 1]);
            arr[curPos - 1] = 0;
            curPos--;
        }
    }
 
    std::cout << "Fill NULLs: "; //оставить это, если удалять не надо
    for (int i = 0; i < n; i++)
        std::cout << arr[i] << " ";
    std::cout << std::endl;
 
    int *newArr = new int[curPos]; //оставить это, если удалять лишнее надо
    for (int i = 0; i < curPos; i++)
        newArr[i] = arr[i];
    
    delete[]arr; //оставить в любом случае
 
    std::cout << "Compress array: "; //оставить это, если лишнее удалено
    for (int i = 0; i < curPos; i++)
        std::cout << newArr[i] << " ";
    std::cout << std::endl;
 
    delete[]newArr;
    return 0;
}
0
7438 / 5030 / 2892
Регистрация: 18.12.2017
Сообщений: 15,692
30.05.2018, 17:23
Лучший ответ Сообщение было отмечено Ywep6 как решение

Решение

Цитата Сообщение от SuperKir Посмотреть сообщение
А причем тут сжатие?)
Зачем обнулять если можно удалить?
условие задачи такое
Ywep6,
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
#include <iostream>
#include <cmath>
#include <ctime>
using namespace std;
 
int main()
{
    srand((int)time(0));
    int N, k=0;
    cout <<"Enter N: "; cin >>N;
 
    double*a = new double[N];
 
    for (int i = 0; i < N; i++)
      {
      a[i]=0.1*(rand()%41 - 20);
      cout <<a[i]<<"  ";
      }
    cout <<endl;
    
    for (int i = 0; i < N; i++)    
    if (abs(a[i])<=1.0)
    {        
       k++;    
       for (int j = i; j < N-1; j++)   
       a[j]=a[j+1];
       i--;
    }     
    
    for (int i = 0; i < N; i++)
    {
    if (i>N-1-k) a[i]=0;    
    cout <<a[i]<<"  ";
    }
    cout <<endl;
    
    delete[]a;
system("pause");
return 0;
}
1
475 / 427 / 290
Регистрация: 10.03.2015
Сообщений: 1,782
30.05.2018, 17:33
Цитата Сообщение от Yetty Посмотреть сообщение
условие задачи такое
Вот тут как бы интересное замечание, вот только задание противоречит само себе:
Цитата Сообщение от Ywep6 Посмотреть сообщение
удаляет из него все элементы
Цитата Сообщение от Yetty Посмотреть сообщение
double*a = new double[N];
А тут конечно да, мой косяк, прошляпил этот момент)
0
7438 / 5030 / 2892
Регистрация: 18.12.2017
Сообщений: 15,692
30.05.2018, 17:41
SuperKir, согласен, условие составлено очень плохо. Если строго следовать условию, нужно реально удалять элементы. Но тогда в конце массива не будет освободившихся элементов Поэтому я сделал без реального удаления, а переписал элементы. А вот что Ваша программа не выводит нулей это неправильно ИМХО.
0
475 / 427 / 290
Регистрация: 10.03.2015
Сообщений: 1,782
30.05.2018, 19:58
Yetty, она выводит, я после вывода с нулями удалил их и вывел без нулей
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
30.05.2018, 19:58
Помогаю со студенческими работами здесь

Поиск слов палиндромов и сжатие массива
Добрый день. Необходимо написать программу, которая будет находить в строке слова-палиндромы, а затем &quot;удалять&quot; из строки слова,...

Сжатие массива путем поиска элементов меньше заданного значения
Доброго времени суток всем. Задача: Задан одномерный целочисленный массив. Исключить из него все элементы, значения которых меньше...

Написать программу на основе алгоритма RLE (сжатие/восстановление массива)
Массив из 0 и 1 целых чисел. Массив надо сжать, а затем восстановить массива. Надо написать программу по алгоритму RLE. Спасибо заранее ...

Осуществить перестановку элементов одномерного массива без использования дополнительного массива
Написать программу, которая осуществляет перестановку элементов одномерного массива (заполненный случайными числами в диапазоне от -5 до...

Найти столбец массива с наибольшей суммой элементов и записатьегох в виде одномерного массива
1 Для произвольного двумерного массива найти столбец с наибольшей суммой элементов и записать их в виде одномерного массива.


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

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Новые блоги и статьи
Символьное дифференцирование
igorrr37 13.02.2026
/ * Логарифм записывается как: (x-2)log(x^2+2) - означает логарифм (x^2+2) по основанию (x-2). Унарный минус обозначается как ! */ #include <iostream> #include <stack> #include <cctype>. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru