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

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

Войти
Регистрация
Восстановить пароль
 
JustSay
0 / 0 / 0
Регистрация: 23.07.2013
Сообщений: 17
#1

Расположить вначале отрицательные, а затем положительные элементы в массиве - C++

05.07.2014, 16:54. Просмотров 580. Ответов 3
Метки нет (Все метки)

Помогите пожалуйста. не знаю как сделать его без помощи доп массива.
Дан массив целых чисел A(n), n<=400. Разработать программу которая превращает этот массив так, чтобы в начале размещались все отрицательные, а потом все положительные элементы в порядке их наступления в изначальном массиве. Дополнительный массив не использовать.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
05.07.2014, 16:54
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Расположить вначале отрицательные, а затем положительные элементы в массиве (C++):

Расположить в массиве R сначала положительные, а затем отрицательные элементы массива Z - C++
Расположить в массиве R сначала положите ,а затем отрицательные элементы массива Z. матрица F(10,8) помогите решить пожалуйста. вообще...

Расположить в массиве сначала отрицательные, а затем положительные элементы другого массива - C++
Расположить в массиве R сначала отрицательные, а затем положительные элементы массива Z. Массив Z(20). Нашел такое решение #include...

Одномерный массив: отсортировать так, чтобы вначале шли положительные элементы, а затем - отрицательные - C++
Помогите пожалуйста с задачей. Надо в одномерном массиве поменять элементы так, чтоб вначале шли положительные, затем нули , затем...

Расположить в массиве R[10] сночала положительные, а затем отрицательные элелементы массива Z[10] - C++
Помогите пожалуйста .Расположить в массиве R сночала положительные, а затем отрицательные элелементы массива Z

Расположить сначала все отрицательные элементы, затем положительные и нули, сохраняя первоначальный порядок их - C++
Если организовать такой цикл и такую &quot;сортировку&quot;, то все отрицательные встают &quot;перед&quot; остальными, сохраняя свой порядок, как и надо, НО......

Расположить элементы одномерного массива в следующем порядке: сначала отрицательные, затем нули, потом положительные - C++
Расположить элементы одномерного массива в следующем порядке: сначала отрицательные, затем нули, потом положительные.

3
TyLinka
32 / 32 / 11
Регистрация: 02.02.2012
Сообщений: 177
05.07.2014, 17:20 #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
#include <iostream>
#include <algorithm>
 
using namespace std;
 
int main()
{
    const int n = 400;
    int a[n];
    for (int i=0; i<n; i++)
        cin >> a[i];
    for (int i=0; i<n-1; i++)
        if (a[i] > 0)
            for (int j=i+1; j<n; j++)
                if (a[j] < 0)
                {
                    swap(a[i], a[j]);
                    break;
                }
    for (int i=0; i<n; i++)
        cout << a[i] << " ";
    
}
Хм.. только здесь несовсем первоначальный порядок сохраняется
0
nmcf
5544 / 4854 / 1647
Регистрация: 14.04.2014
Сообщений: 19,710
05.07.2014, 17:33 #3
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
int m[400], i, j, n, t;
 
i = 0;
while(i < n)
{
    if(m[i] > 0)
    {
        j = i;
        ++i;
        while(i < n)
        {
            if(m[i] < 0)
            {
                t = m[j];
                m[j] = m[i];
                for(int k = i; k > j + 1; k--) m[k] = m[k - 1];
                m[j + 1] = t;
                i = j;
                break;
            }
            ++i;
        }
    }
    ++i;
}
n - количество элементов в массиве.
0
rutelun
147 / 73 / 15
Регистрация: 31.05.2014
Сообщений: 215
05.07.2014, 17:45 #4
TyLinka, немного переделал ваш код
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
const int n = 400;
    int a[n];
    for (int i = 0; i<n; i++)
        cin >> a[i];
    for (int i = 0; i<n - 1; i++)
        if (a[i] < 0)
            for (int j = i - 1; j >= 0; j--)
                if (a[j] > 0)
                {
                        swap(a[i], a[j]);
                        i = j;
                }
                else
                {
                    break;
                }
    for (int i = 0; i<n; i++)
        cout << a[i] << " ";
 
    return 0;
1
05.07.2014, 17:45
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
05.07.2014, 17:45
Привет! Вот еще темы с ответами:

В массиве сначала расположить все положительные элементы,а потом отрицательные - C++
1.В одномерному массиве,что состоит из N целых элементов вычислить: 1)добавление элементов массиву с парными номерами; 2)сумму...

Расположить в массиве сначала все отрицательные элементы и нули, потом - положительные (Pascal -> C++) - C++
Помогите пожалуйста, нужно перевести программу с pascal на С++. Есть два вида кода: const n=10; var a,b:array of integer; ...

Написать рекурсивную функцию, которая вначале печатает все отрицательные числа, а затем все положительные числа - C++
Дана последовательность ненулевых чисел, в конце которой следует 0. Написать рекурсивную функцию, которая вначале печатает все...

Сортировка массива: сначала расположить положительные, а потом - отрицательные элементы - C++
Проверьте пожайлуста мое решение :) . Эффективен ли вообще такой подход? Задание: Преобразовать массив , так чтобы сначала...


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

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

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