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

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

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 9, средняя оценка - 4.78
Olejeg85
13 / 10 / 0
Регистрация: 27.03.2011
Сообщений: 164
#1

не получается поменять местами элементы массива - C++

14.07.2011, 03:06. Просмотров 1105. Ответов 10
Метки нет (Все метки)

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
#include <iostream>
using namespace std;
 
int main()
{
    int arr[6]={1, 2, 3, 4, 5, 6}, temp;
    
    //массив до перестановки
    cout << "Massiv do perestanovki\n";
    for(int ix=0; ix!=6; ++ix)
    cout << arr[ix];
 
    //меняем местами элементы массива
    for(int ix=0, ix2=5; ix!=6; ++ix, --ix2)
    {
        temp=arr[ix];           //записываем первый элемент во временную переменную
        arr[ix]=arr[ix2];       //записываем в первый элемент - последний
        arr[ix2]=temp;          //записываем в последний первый элемент
    } 
    cout << endl;
    //массив после перестановки
    cout << "\nMassiv posle perestanovki\n";
    for(int ix=0; ix!=6; ++ix)
        cout << arr[ix];
 
    cout << endl;
 
    system("pause");
    return 0;
 
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
14.07.2011, 03:06
Здравствуйте! Я подобрал для вас темы с ответами на вопрос не получается поменять местами элементы массива (C++):

Поменять местами каждую пару чисел массива (не получается) - C++
Создать массив из 20 случайных чисел. Поменять местами каждую пару чисел. написал часть не получается поменять я просто не понимаю....

Поменять местами первый и последний элементы. Все единичные элементы массива заменить нулями - C++
Люди добрые, помогите плиз с задачками. В массиве Р, размерности 150 150. поменять местами первый и последний элементы; все единичные...

Поменять местами элементы массива - C++
в заданном массиве из n элементов поменять местами элементы с n/2+1 по n: a(индекс n/2+i)=a(индекс n-i+1), i=1,...,n/2 Кто нить объяснит...

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

Поменять местами элементы массива - C++
Здравствуйте! В задании сказано создать динамический массив, в который пользователь сам задает числа и вывести 2-ой динамический массив без...

Поменять местами элементы массива - C++
Дано одномерный массив с четным количеством элементов. Поменять местами первый элемент с последним, второй с предпоследним, и т.д. Вывести...

10
Jupiter
Каратель
Эксперт С++
6559 / 3980 / 227
Регистрация: 26.03.2010
Сообщений: 9,273
Записей в блоге: 1
Завершенные тесты: 2
14.07.2011, 03:13 #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
#include <iostream>
using namespace std;
 
int main()
{
    const int N = 6;
        int arr[N]={1, 2, 3, 4, 5, 6}, temp;
        
        //массив до перестановки
        cout << "Massiv do perestanovki\n";
        for(int ix=0; ix < N; ++ix)
        cout << arr[ix];
 
        //меняем местами элементы массива
        for(int ix=0, ix2=5; ix <= N / 2; ++ix, --ix2)
        {
                temp=arr[ix];                   //записываем первый элемент во временную переменную
                arr[ix]=arr[ix2];               //записываем в первый элемент - последний
                arr[ix2]=temp;                  //записываем в последний первый элемент
        } 
        cout << endl;
        //массив после перестановки
        cout << "\nMassiv posle perestanovki\n";
        for(int ix=0; ix < N; ++ix)
                cout << arr[ix];
 
        cout << endl;
 
        system("pause");
        return 0;
 
}
0
OstapBender
584 / 523 / 35
Регистрация: 22.03.2011
Сообщений: 1,585
14.07.2011, 03:13 #3
C
1
        for(int ix=0, ix2=5; ix!=6; ++ix, --ix2)
условие заменить на ix!=3, а лучше ix<3
0
Olejeg85
13 / 10 / 0
Регистрация: 27.03.2011
Сообщений: 164
14.07.2011, 03:21  [ТС] #4
Цитата Сообщение от OstapBender Посмотреть сообщение
C
1
        for(int ix=0, ix2=5; ix!=6; ++ix, --ix2)
условие заменить на ix!=3, а лучше ix<3
спасиб

почему лучше <, а не != если разницы никакой
0
Jupiter
Каратель
Эксперт С++
6559 / 3980 / 227
Регистрация: 26.03.2010
Сообщений: 9,273
Записей в блоге: 1
Завершенные тесты: 2
14.07.2011, 03:22 #5
Цитата Сообщение от Olejeg85 Посмотреть сообщение
почему лучше <
легче для понимания, а для итераторов используют != из соображений эффективности
0
Olejeg85
13 / 10 / 0
Регистрация: 27.03.2011
Сообщений: 164
14.07.2011, 03:23  [ТС] #6
Цитата Сообщение от Maxwe11 Посмотреть сообщение
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
#include <iostream>
using namespace std;
 
int main()
{
    const int N = 6;
        int arr[N]={1, 2, 3, 4, 5, 6}, temp;
        
        //массив до перестановки
        cout << "Massiv do perestanovki\n";
        for(int ix=0; ix < N; ++ix)
        cout << arr[ix];
 
        //меняем местами элементы массива
        for(int ix=0, ix2=5; ix <= N / 2; ++ix, --ix2)
        {
                temp=arr[ix];                   //записываем первый элемент во временную переменную
                arr[ix]=arr[ix2];               //записываем в первый элемент - последний
                arr[ix2]=temp;                  //записываем в последний первый элемент
        } 
        cout << endl;
        //массив после перестановки
        cout << "\nMassiv posle perestanovki\n";
        for(int ix=0; ix < N; ++ix)
                cout << arr[ix];
 
        cout << endl;
 
        system("pause");
        return 0;
 
}
спасиб, с одномерным получилось, но в задании написано было сделать с двумерным это действие, я думал что разберусь как с одномерным сделать и с двумерным будет легче разобраться, а с двумерным что-то не получается (
0
Jupiter
Каратель
Эксперт С++
6559 / 3980 / 227
Регистрация: 26.03.2010
Сообщений: 9,273
Записей в блоге: 1
Завершенные тесты: 2
14.07.2011, 03:24 #7
Цитата Сообщение от Olejeg85 Посмотреть сообщение
спасиб, с одномерным получилось, но в задании написано было сделать с двумерным это действие, я думал что разберусь как с одномерным сделать и с двумерным будет легче разобраться, а с двумерным что-то не получается (
показывайте что у вас не получилось и уточните задание
0
Olejeg85
13 / 10 / 0
Регистрация: 27.03.2011
Сообщений: 164
14.07.2011, 03:39  [ТС] #8
Цитата Сообщение от Maxwe11 Посмотреть сообщение
показывайте что у вас не получилось и уточните задание
все, разобрался =)
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
#include <iostream>
using namespace std;
 
int main()
{
    const int max=6, size=2;
    int arr[max][size]={{1,1},{2,2},{3,3},{4,4},{5,5},{6,6}};
    int temp;
    
    //массив до перестановки
    cout << "Massiv do perestanovki\n";
    for(int i=0; i!=max; ++i)
        for (int n=0; n!=size; ++n)
            cout << arr[i][n] << " ";
 
 
    //меняем местами элементы массива
    for(int i=0, i2=5; i!=max/2; ++i, --i2)
        for(int n=0; n!=size; ++n)
        {
        temp=arr[i][n];         //записываем первый элемент во временную переменную
        arr[i][n]=arr[i2][n];       //записываем в первый элемент - последний
        arr[i2][n]=temp;            //записываем в последний первый элемент
        }
      
 
    cout << "\n\nMassiv posle perestanovki\n";
    for(int i=0; i!=max; ++i)
        for (int n=0; n!=size; ++n)
            cout << arr[i][n] << " ";
 
    cout << endl;
 
    system("pause");
    return 0;
 
}
0
OstapBender
584 / 523 / 35
Регистрация: 22.03.2011
Сообщений: 1,585
14.07.2011, 03:49 #9
Цитата Сообщение от Olejeg85 Посмотреть сообщение
почему лучше <, а не != если разницы никакой
а если у тебя шаг например не ++ а +=2 то можешь и проскочить условие выхода. и зациклишься.
0
greeezz
273 / 166 / 4
Регистрация: 10.07.2011
Сообщений: 441
14.07.2011, 07:56 #10
замечательный метод для вашей задачи:

C
1
2
3
4
5
6
7
8
void reverse(char s []) 
{ 
     int с, i, j ; 
     for (i = 0, j = strlen(s)-1; i < j; i++, j--) {
          с = s[i],  s[i] = s[j],  s[j] = c; 
 
      } 
}
0
Deviaphan
Делаю внезапно и красиво
Эксперт С++
1306 / 1221 / 50
Регистрация: 22.03.2011
Сообщений: 3,744
14.07.2011, 20:10 #11
Цитата Сообщение от Maxwe11 Посмотреть сообщение
легче для понимания, а для итераторов используют != из соображений эффективности
В смысле? При чём тут эффективность? Тут дело в невозможности сравнивать на что либо, кроме равно-не равно для любого контейнера, кроме массива. Узлы списка(и ему подобных), расположены в памяти произвольно. Сравнивать адреса бесполезно. Это единственная причина. С точки зрения процессора, < и != абсолютно равнозначны.
1
14.07.2011, 20:10
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
14.07.2011, 20:10
Привет! Вот еще темы с ответами:

Поменять местами элементы массива - C++
В массиве A из N элементов поменять местами первый элемент с последним, второй - с предпоследним и т.д. #include &lt;iostream&gt; #include...

Поменять местами элементы массива - C++
2).Сортировка выбором предполагает использование трёх приёмов. Второй - перестановка двух данных элементов местами. Поменяйте местами...

Поменять элементы массива местами - C++
Есть массив int mas={1,2,4,5,7,8} как поменять в нём элементы , чтобы получился массив int mas={2,1,5,4,8,7} то есть меня элементы...

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


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

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

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