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

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

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 9, средняя оценка - 5.00
Аццкий Прогер
21 / 10 / 4
Регистрация: 07.01.2013
Сообщений: 222
#1

Поменять местами элементы массива с четными и нечетными индексами (через указатели) - C++

07.05.2013, 00:08. Просмотров 1921. Ответов 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
#include <iostream>
#include <conio.h>
#include <time.h>
#include <math.h>
#include <cstring>
#include <stdlib.h>
 
using namespace std;
 
int _tmain(int argc, _TCHAR* argv[])
{
    setlocale(LC_ALL, "russian");
    srand(time(NULL));
    const int size=5;
    int a[size];
    int* pa;
    int* pb;
    cout<<"До изменений: "<<endl;
    for (int i=0; i<size; ++i)
    {
        a[i]=rand()%10;
        cout<<a[i]<<"\t";
        pa=&a[i];
    }
    cout<<endl;
    cout<<"После изменений: "<<endl;
    for (int i=0; i<size; ++i)
    {
        int temp;
        if(a[i]%2!=0)
        {
            *pb=*pa;
        }
        temp=*pa;
        *pa=*pb;
        *pb=temp;
        cout<<*(pb)<<endl;
    }
    _getch();
    return 0;
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
07.05.2013, 00:08
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Поменять местами элементы массива с четными и нечетными индексами (через указатели) (C++):

Поменять местами элементы массива с четными и нечетными индексами (использовать указатели) - C++
В массиве поменять местами элементы с четными и нечетными индексами. Использовать указатели.

Поменять местами элементы массива с четными и нечетными индексами используя указатели - C++
Поменять местами элементы массива с четными и нечетными индексами используя указатели Ну вот не знаю как сделать, честно... Мой...

Поменять местами элементы массива с четными и нечетными индексами - C++
//Дан массив целых чисел. Воспользовавшись указателями, //поменяйте местами элементы массива с четными и нечетными индексами //(т.е. те...

В одномерном массиве вещественных чисел поменять местами элементы с четными и нечетными индексами. - C++
В одномерном массиве вещественных чисел поменять местами элементы с четными и нечетными индексами. Помогите, пожалуйста. Хотя бы...

Воспользовавшись указателями, поменяйте местами элементы массива с четными и нечетными индексами - C++
Решить задачи через Указатели... 3. Дан массив целых чисел. Воспользовавшись указателями, поменяйте местами элементы массива с четными...

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

2
Bend3r
149 / 136 / 18
Регистрация: 29.07.2012
Сообщений: 709
07.05.2013, 01:19 #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
#include <fstream>
#include <iostream>
#include <Windows>
#include <conio.h>
using namespace std;
 
int main()
{
SetConsoleCP(1251);
SetConsoleOutputCP(1251);
int mas[10];
int *p,per;
cout << "Исходный массив\n";
for(int i = 0; i < 10; i++) //цикл для заполнения массива
{
        mas[i]=i+1;
        cout << mas[i] << " ";
}
per=mas[0]; // чтоб не потерять первый елемент
 
for(int i = 0; i < 10; i++) //цикл меняем четные с нечетными
{
if(i == 9)
{
        mas[i]=per;
        break;
}
        p=&mas[i];
        mas[i]=mas[i+1];
        mas[i+1]=*p;
}
cout << "\nПеределанный массив\n";
for(int i = 0; i < 10; i++) //цикл для заполнения массива
{
        cout << mas[i] << " ";
}
 
system("PAUSE");
}
1
Аццкий Прогер
21 / 10 / 4
Регистрация: 07.01.2013
Сообщений: 222
12.05.2013, 01:23  [ТС] #3
Цитата Сообщение от Bend3r Посмотреть сообщение
C++
1
2
3
4
5
for(int i = 0; i < 10; i++) //цикл для заполнения массива
{
        mas[i]=i+1;
        cout << mas[i] << " ";
}
Тут ты просто забил массив числами от 1го до 10ти. Твой вариант я понял. Спасибо.
Но пытался переделать под свой, не получилось. Я использую случайные числа, и вот тут вся сложность, как теперь сделать, так, чтобы четные с нечетными менялись местами в массиве, заполненным случайными числами??
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
12.05.2013, 01:23
Привет! Вот еще темы с ответами:

Вывести элементы массива с четными/нечетными индексами - C++
3. Дан массив размера N. Вывести вначале его элементы с четными1|нечетными2 индексами, а затем — с нечетными1|четными2.

Сформировать массив, у которого вначале расположены элементы массива А с нечетными индексами, затем с четными - C++
Дан массив А(20). Найти максимальный элемент среди положительных элементов массива А и сформировать массив Р(20), у которого вначале...

Одномерный массив (элементы с четными индексами переписать в массив z.в массиве z поменять местами максимальный и минимальный элементы) - C++
задан массив x(n).элементы с четными индексами переписать в массив z.в массиве z поменять местами максимальный и минимальный...

В двумерном массиве заменить элементы строк с четными индексами элементами строк с нечетными индексами - C++
Дан массив чисел, А (5, 4). Превратить массив , заменив элементы строк с четными индексами элементами строк с нечетными индексами (элементы...


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

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

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