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

Сжать массив, удалив из него все элементы, модуль которых находится в интервале [а, b] - C++

Восстановить пароль Регистрация
 
love.coffee
0 / 0 / 0
Регистрация: 12.10.2010
Сообщений: 18
20.11.2011, 13:14     Сжать массив, удалив из него все элементы, модуль которых находится в интервале [а, b] #1
Сжать массив, удалив из него все элементы, модуль которых находится в
интервале [а, b]. Освободившиеся в конце массива элементы заполнить нулями.
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
20.11.2011, 13:14     Сжать массив, удалив из него все элементы, модуль которых находится в интервале [а, b]
Посмотрите здесь:

C++ Сжать массив, удалив из него все элементы, модуль которых находится в интервале a,b
Сжать массив, удалив из него все элементы, модуль которых находится в интервале [a,b] C++
Сжать массив, удалив из него элементы, модуль которых находится в заданном интервале C++
C++ Сжать массив, удалив из него все элементы, модуль которых находится в интервале [a,b].
Сжать массив, удалив из него все элементы, модуль которых находится в интервале [a,b]. Освободившиеся в конце массива элементы заполнить нулями C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Master_Boss
1 / 1 / 1
Регистрация: 14.11.2010
Сообщений: 5
20.11.2011, 13:16     Сжать массив, удалив из него все элементы, модуль которых находится в интервале [а, b] #2
ну и где код с твоими мыслями? не пойдет так
love.coffee
0 / 0 / 0
Регистрация: 12.10.2010
Сообщений: 18
20.11.2011, 13:32  [ТС]     Сжать массив, удалив из него все элементы, модуль которых находится в интервале [а, b] #3
у меня есть код с введением массива и поиском максимального
а по поводу этого задания мысли в разброд
сначала подумывала, что их просто нулями заменить надо
а как сдвигать их?

Добавлено через 13 минут
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
for (int i=1; i<=n; i++)
    {
        if (a[i]>0 || a[i]==0)
        {
        m=m+1;
        b[m]=a[i];
        }
    }
for (int i=1; i<=n; i++)
    {
    if (a[i]<0)
        {
        m=m+1;
        b[m]=0;
        }
    }
 
for (int i=1; i<=m; i++)
    {
    cout << b[i] << "   ";
    }
 
system("pause");
}
если так?
но как сделать интервал?
Master_Boss
1 / 1 / 1
Регистрация: 14.11.2010
Сообщений: 5
20.11.2011, 16:34     Сжать массив, удалив из него все элементы, модуль которых находится в интервале [а, b] #4
Сообщение было отмечено автором темы, экспертом или модератором как ответ
но вот ты в принципе и написала решение, только надо его немного доработать и додумать, у тебя есть массив a, который сравнивает элементы в первом цикле с неотрицательными значениями, вот только тебе надо заменить это сравнение на числа твоего диапазона, т.е. например:

C++
1
2
3
4
5
if(array_1[i] < a || array_1[i] > b)
{
     m = m + 1;
     array_2[m] = array_1[i];
}
т.е. заполняем второй массив элементами, не лежащими в диапазоне, второй же цикл, который у нас будет, будет заполнять нулевыми элементами массив b, если числа лежать в диапазоне(опять оператор if() соответственно). Кстати проще сделать без второго цикла, а с помощью оператора else...
love.coffee
0 / 0 / 0
Регистрация: 12.10.2010
Сообщений: 18
20.11.2011, 17:05  [ТС]     Сжать массив, удалив из него все элементы, модуль которых находится в интервале [а, b] #5
спасибо)
попробую написать через else)
Yandex
Объявления
20.11.2011, 17:05     Сжать массив, удалив из него все элементы, модуль которых находится в интервале [а, b]
Ответ Создать тему
Опции темы

Текущее время: 16:49. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru