0 / 0 / 0
Регистрация: 28.09.2014
Сообщений: 24
1

Сжать массив, удалив из него все элементы, модуль которых не превышает 1

04.11.2015, 22:01. Показов 3083. Ответов 2
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
В одномерном массиве, состоящем из n действительных элементов, сжать массив, удалив из него все элементы, модуль которых не превышает 1 Элементы освободившиеся в конце массива, заполните нулями
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
04.11.2015, 22:01
Ответы с готовыми решениями:

Сжать массив, удалив из него все элементы, модуль которых не превышает 1
Здравствуйте. Задача такая: П.5.16.Правил Запрещено создавать темы с множеством вопросов во всех...

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

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

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

2
0 / 0 / 3
Регистрация: 22.06.2015
Сообщений: 31
04.11.2015, 22:23 2
Лучший ответ Сообщение было отмечено fedia как решение

Решение

если решать без спец. команд, то это будет выглядеть так

C++
1
2
3
4
5
6
7
8
9
10
11
12
k = 0;
for (i = 0; i < n; i++)
{
      if ((a[i] <= 1) && (a[i] >= -1))
      {
            k++;
            for (j = i + 1; j < n; j++)
                 a[j - 1] = a[j];
      }     
}
for (i = n - 1; i >=n - k; i++)
     a[i] = 0;
P.S Компилировать не пробовал, но должно получится
0
495 / 377 / 136
Регистрация: 27.01.2015
Сообщений: 1,588
05.11.2015, 01:49 3
Цитата Сообщение от Cneprofi Посмотреть сообщение
for (i = n - 1; i >=n - k; i++)
тут упадет - выход за массив
так:
C++
1
for (i = n - 1; i >=n - k; --i)

никто же не сказал что нужно сжать именно сдвигом элементов... так вот работает за O(n)
C++
1
2
3
4
5
6
7
8
9
const int n = 40;
int arr[n];
int valid_index = n-1;
 for(int i=n - 1; i >= 0 ; --i)
     if(abs(arr[i] < 1))
     {
         arr[i] = arr[ valid_index ];
         arr[ valid_index-- ] = 0;
     }
0
05.11.2015, 01:49
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
05.11.2015, 01:49
Помогаю со студенческими работами здесь

Сжать одномерный массив, удалив из него все элементы, модуль которых не превышает 1
Сжать одномерный вещественный массив, удалив из него все элементы, модуль которых не превышает 1....

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

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

Сжать массив, удалив из него все элементы модуль которых не превышает 1. Заполнить эти элементы нулями
Во время перестановки, когда первый 0 достигает конца массива, выскакивает ошибка и прога...


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru