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

В одномерном массиве меняем элементы - C++

Восстановить пароль Регистрация
 
XaJlop4ik
0 / 0 / 0
Регистрация: 21.11.2011
Сообщений: 70
17.03.2012, 21:18     В одномерном массиве меняем элементы #1
В массиве X(n) переставить местами первый и второй отрицательные элементы, третий и четвертый отрицательные элементы и т.д. Определить, как изменилось положение минимального и максимального элементов массива при его преобразовании.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
void main()
{setlocale(LC_ALL, "");
    srand(time(NULL));
        int N;
        cout<<"Введите кол-во элементов в массиве X[N]:"<<endl;
        cin>>N;
        int *X = new int [N], i;
        cout<<"Массив X[N]:"<<endl;
        for (i=0; i<N; ++i)
        {
                X[i]=rand()%50-20;
                cout<<X[i]<<" ";
        }
        cout<<endl;
        system("pause");
}
Пока я только организовал заполнение массива случайными числами, от -20 до 30, как дальше подскажите. Не пойму как реализовать замену отрицательных чисел первого со вторым и т.д.
Нужно сформировать условие если оба элемента отрицательные, то меняем их местами, как это оформить?
Вот что то вроде этого?
Например:
C++
1
2
3
4
5
6
7
if (X[i]<0)
        {
            for (i=0; i<N; ++i)
            {
                x[0]=x[1];
            }
        }
Миниатюры
В одномерном массиве меняем элементы  
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
17.03.2012, 21:18     В одномерном массиве меняем элементы
Посмотрите здесь:

Удалить 0 элементы в одномерном массиве C++
в одномерном массиве А состоящем из N элементов найти максимальные элементы и все элементы равные максимальному заменить на 0. C++
C++ Массивы: Сохранить в одномерном массиве элементы главной диагонали
C++ В одномерном массиве сортировать элементы по возрастанию методом пузырька
Определить имеются ли в одномерном массиве одинаковые элементы C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
gore-lykovoe
 Аватар для gore-lykovoe
31 / 31 / 1
Регистрация: 04.04.2010
Сообщений: 414
17.03.2012, 22:42     В одномерном массиве меняем элементы #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
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
#include<iostream>
#include <cstdlib>
#include <time.h>
using namespace std;
void main()
{setlocale(LC_ALL, "");
        srand(time(NULL));
        int N;
                cout<<"Введите кол-во элементов в массиве X[N]:"<<endl;
        cin>>N;
        int *X = new int [N], i;
                cout<<"Массив X[N]:"<<endl;
        for (i=0; i<N; ++i)
        {
                X[i]=rand()%50-20;
                cout<<X[i]<<" ";
        }
                cout<<endl;
    int p1 = 0;
    bool flag = true;
    for ( int i = 0; i < N; i ++ )
    {
        if (( X [ i ] < 0 ) && (flag == true))
        {
            p1 = i;
            flag = false;
        }
        else if (( X [ i ] < 0 ) && (flag == false))
        {
            int temp = X [ i ];
            X [ i ] = X [ p1 ];
            X [ p1 ] = temp;
            flag = true;
        }
    }
    for (i=0; i<N; ++i)
        {
                
                cout<<X[i]<<" ";
        }
                cout<<endl;
    system("pause");
}
Kreolix
4 / 4 / 0
Регистрация: 07.07.2011
Сообщений: 15
17.03.2012, 23:01     В одномерном массиве меняем элементы #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
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
#include <iostream>
#include <time.h>
using namespace std;
 
void main()
{setlocale(LC_ALL, "");
        srand(time(NULL));
        int N;
                cout<<"Введите кол-во элементов в массиве X[N]:"<<endl;
        cin>>N;
        int *X = new int [N], i;
                cout<<"Массив X[N]:"<<endl;
        for (i=0; i<N; ++i)
        {
                X[i]=rand()%50-20;
                cout<<X[i]<<" ";
        }
                cout<<endl;
 
    int j = 0, temp;
 
    for (int i=0;i<N;i++)
    {
        if (X[i] < 0)
        {
            j = i+1;
            while(X[j] >= 0 || j == N)
                j++;
            if (j<N)
            {
                temp = X[i];
                X[i] = X[j];
                X[j] = temp;
                i = j;
            }
        }
    }
 
        
    for (i=0; i<N; ++i)
        cout<<X[i]<<" ";
        system("pause");
}
XaJlop4ik
0 / 0 / 0
Регистрация: 21.11.2011
Сообщений: 70
18.03.2012, 00:45  [ТС]     В одномерном массиве меняем элементы #4
gore-lykovoe, Спасибо, все работает, хотя и не очень понятно как(
Yandex
Объявления
18.03.2012, 00:45     В одномерном массиве меняем элементы
Ответ Создать тему
Опции темы

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