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

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

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

Помогите пожалуйста. не знаю как сделать его без помощи доп массива.
Дан массив целых чисел A(n), n<=400. Разработать программу которая превращает этот массив так, чтобы в начале размещались все отрицательные, а потом все положительные элементы в порядке их наступления в изначальном массиве. Дополнительный массив не использовать.
__________________
Помощь в написании контрольных, курсовых и дипломных работ, диссертаций здесь
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
05.07.2014, 16:54
Ответы с готовыми решениями:

Расположить в массиве R сначала положительные, а затем отрицательные элементы массива Z
Расположить в массиве R сначала положите ,а затем отрицательные элементы массива Z. матрица...

Расположить в массиве сначала отрицательные, а затем положительные элементы другого массива
Расположить в массиве R сначала отрицательные, а затем положительные элементы массива Z. Массив...

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

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

3
34 / 34 / 21
Регистрация: 02.02.2012
Сообщений: 181
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
7167 / 6142 / 2802
Регистрация: 14.04.2014
Сообщений: 26,462
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
147 / 73 / 17
Регистрация: 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
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
05.07.2014, 17:45
Помогаю со студенческими работами здесь

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

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

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

Расположить в массиве сначала все отрицательные элементы и нули, потом - положительные (Pascal -> C++)
Помогите пожалуйста, нужно перевести программу с pascal на С++. Есть два вида кода: const...


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

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

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