Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.60/5: Рейтинг темы: голосов - 5, средняя оценка - 4.60
Bandicoot14
0 / 0 / 0
Регистрация: 25.12.2014
Сообщений: 29
1

Элементы, стоящие на четных местах в массиве, переставить между собой

26.04.2015, 17:09. Просмотров 846. Ответов 7
Метки нет (Все метки)

Помогите сделать так , чтобы в массиве элементы стоящие на четных местах были переставлены между собой.
Должно выглядеть вот так
0 1 2 3 4 5 6 7 8 9 10(начальный массив)
2 1 0 3 6 5 4 7 10 9 8(конечный массив)
Все что можно перепробовал,никак не получатется

Добавлено через 2 минуты
Что бы переставить элементы стоящие на четных и нечетных местах,делал по этому принципу:
C++
1
2
3
4
5
6
7
8
for (int i = 0; i < 6; i ++)
   {
   if (i%2!=0)
     {
      int b = mas[i-1];
      mas[i-1] = mas[i];
      mas[i] = b;
     }
Добавлено через 1 минуту
Пробовал сделать так,но ничего не получатся хотя по сути все верно
C++
1
2
3
4
5
6
7
8
for (int i = 0; i < 12; i ++ )
{
if( i%2 == 0)
{
int b = mas[i];
mas[i] = mas[i+2];
mas[i+2] = b;
}
0
Лучшие ответы (1)
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
26.04.2015, 17:09
Ответы с готовыми решениями:

В заданном одномерном массиве поменять местами соседние элементы, стоящие на четных местах, с элементами, стоящими на нечетных местах
1)В заданном одномерном массиве поменять местами соседние элементы, стоящие на...

Сортировка массива: отдельно элементы, стоящие на четных местах и элементы, стоящие на нечетных местах
здравствуйте! задание: В одномерном массиве, состоящем из п целых элементов....

Упорядочить по возрастанию отдельно элементы, стоящие на четных местах, и элементы, стоящие на нечетных местах
В одномерном массиве, состоящем из n вещественных элементов, вычислить: 1) ...

В одномерном массиве А(10) поменять местами элементы стоящие на четных и нечетных местах
В одномерном массиве А(10) поменять местами элементы стоящие на четных и...

В заданном одномерном массиве поменять местами соседние элементы, стоящие на четных местах
В заданном одномерном массиве поменять местами соседние элементы, стоящие на...

7
Евгений89
99 / 99 / 39
Регистрация: 17.04.2011
Сообщений: 554
Завершенные тесты: 2
26.04.2015, 17:13 2
А если у вас подряд будут идти четные или нечетные числа, тогда сортировка будет неверная
0
Даценд
Модератор
Эксперт .NET
4149 / 3934 / 2605
Регистрация: 20.04.2015
Сообщений: 7,132
26.04.2015, 17:20 3
Цитата Сообщение от Bandicoot14 Посмотреть сообщение
C++
1
2
3
4
5
6
7
8
for (int i = 0; i < 6; i ++)
{
if (i%2!=0)
{
int b = mas[i-1];
mas[i-1] = mas[i];
mas[i] = b;
}
C++
1
2
3
[CPP]int b = mas[i-1];
mas[i-1] = mas[i+1];
mas[i+1] = b;
[/CPP]
0
Bandicoot14
0 / 0 / 0
Регистрация: 25.12.2014
Сообщений: 29
26.04.2015, 17:26  [ТС] 4
Все равно не получается...

Вот как пробовал писать
Добавлено через 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
#include <iostream>
#include <cstdlib>
#include <ctime>
 
using namespace std;
 
int main()
{
srand(time(NULL));
int mas[12];
for (int i=0; i < 12; i++)
{
mas[i]=10 + rand() % 30;
}
for (int i = 0; i < 12; i++)
cout << " " << mas[i];
cout<<endl;
 
for (int i = 0; i < 12; i ++ )
{
if( i%2 == 0)
{
int b = mas[i];
mas[i] = mas[i+2];
mas[i+2] = b;
}
cout << " " << mas[i];
}
 
return 0;
}
0
Даценд
Модератор
Эксперт .NET
4149 / 3934 / 2605
Регистрация: 20.04.2015
Сообщений: 7,132
26.04.2015, 17:27 5
Да, и сам цикл нужно поменять, например
C++
1
for (int i = 1; i < n; i +=4)
0
Gr1f0nn
242 / 162 / 133
Регистрация: 30.09.2012
Сообщений: 690
26.04.2015, 17:31 6
Лучший ответ Сообщение было отмечено Bandicoot14 как решение

Решение

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>
int main()
{
    int mas[11];
 
    for(int i = 0 ; i <= 10 ; ++i)
        std::cin >> mas[i];
 
    for(int i = 0 ; i <= 10 ; ++i)
        std::cout << mas[i] << " ";
 
    for(int i = 1, temp = 0 ; i <= 9 ; i += 4)
    {
        temp = mas[i-1];
        mas[i-1] = mas[i+1];
        mas[i+1] = temp;
    }
 
    std::cout << "\n";
    for(int i = 0 ; i <= 10 ; ++i)
        std::cout << mas[i] << " ";
    return 0;
}
1
Bandicoot14
0 / 0 / 0
Регистрация: 25.12.2014
Сообщений: 29
26.04.2015, 17:56  [ТС] 7
...

Добавлено через 4 минуты
спасибо большое !

Добавлено через 19 минут
а вы же забыли про проверку на четность
0
Даценд
Модератор
Эксперт .NET
4149 / 3934 / 2605
Регистрация: 20.04.2015
Сообщений: 7,132
26.04.2015, 18:16 8
Но ведь работает!
Параметр i будет принимать значения ряда 1, 5, 9 ... . Соответственно i-1 и i+1 это четные индексы.
0
26.04.2015, 18:16
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
26.04.2015, 18:16

В массиве из 10 целых чисел заменить все элементы, стоящие на четных местах, на минимальный элемент
В массиве из 10 целых чисел заменить все элементы, стоящие на четных местах, на...

Массивы: поменять местами соседние элементы, стоящие на четных местах, с элементами ,стоящими на нечетных местах
В заданном одномерном массиве поменять местами соседние элементы ,стоящие на...

Все элементы исходного массива, стоящие на нечетных местах, возвести в квадрат, на четных местах – в куб
как будет код не знаете? Дано два массива байтов, один заполнен числами....


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

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

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