Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.81/21: Рейтинг темы: голосов - 21, средняя оценка - 4.81
0 / 0 / 0
Регистрация: 23.03.2020
Сообщений: 34

Поменять местами нечетные и четные элементы массива, оцените код

22.04.2020, 09:21. Показов 4248. Ответов 9
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Оцените код от 0 до 10.
Хотяб на 2 пойдет? Что можно изменить? Программа меняет местами элементы массива, нечетные и четные. Допустим было 1 и 2, стало 2 и 1 , было 2 и 1, стало 1 и 2.
C++ (Qt)
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 <iostream>
using namespace std;
 
void change(int  arr[], int size)
{
    int temp = 0;
    for (int a = 0; a < size; a++)
    {
        if (a == size - 1)  // если  a = размер маасива - 1 , то выходим,чтобы не было краша
              // выхода за пределы массива
        {
            break;
        }
        if (arr[a] % 2 != 0 && arr[a + 1] % 2 == 0 || arr[a+1] %2 !=0 && arr[a] %2 ==0) // если первый элемент нечетен и второй элемент четен или наоборот.
        {
            temp = arr[a];  // меняем местами элементы ( 1 и 2 , стало 2 и 1)
            arr[a] = arr[a + 1];
            arr[a + 1] = temp;
            a++;
        }
       
    }
}
 
void PrintArr(int arr[],int size) // вывод массива
{
    for (int a = 0; a < size; a++)
    {
        cout << arr[a] << endl;
    }
}
 
int main()
{
    const int SIZE = 12;
    int arr[SIZE]{ 1,2,3,4,5,6,7,8,9,10,11,12 };
    change(arr, SIZE); // меняем местами элементы.
    PrintArr(arr, SIZE); // выводим.
}
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
22.04.2020, 09:21
Ответы с готовыми решениями:

Найти четные и нечетные элементы одномерного массива и поменять их местами
найти четные и нечетные элементы одномерного массива и поменять их местами

Найти четные и нечетные элементы одномерного массива и поменять их местами
Найти четные и нечетные элементы одномерного массива и поменять их местами.

Поменять местами четные и нечетные элементы массива
в произвольном одномерном массиве поменять местами элементы в парах, элементы с нечетным номером-элемент с четным номером(дополнительный...

9
фрилансер
 Аватар для Алексей1153
6466 / 5688 / 1131
Регистрация: 11.10.2019
Сообщений: 15,133
22.04.2020, 09:37
(субъективно, за что я бы минусовал)
using namespace std; вместо std::
arr[], int size вместо вектора
temp = arr[a]; arr[a] = arr[a + 1]; arr[a + 1] = temp; вместо std::swap(arr[a],arr[a+1])

if (arr[a] % 2 != 0 && arr[a + 1] % 2 == 0 || arr[a+1] %2 !=0 && arr[a] %2 ==0) - нечитабельно

C++
1
2
3
4
5
const bool L=(arr[a]%2 == 0);//слева - чётное
const bool R=(arr[a+1]%2 == 0);//справа - чётное
if(L!=R)//если чётность не совпадает
{
}
0
0 / 0 / 0
Регистрация: 23.03.2020
Сообщений: 34
22.04.2020, 09:42  [ТС]
зачем std?
где не читабельно,как исправить?Там по сути две части
Первая arr[a]%!=0 && arr[a+1] == 0 . Вторая такая же,но наоборот. между этими частями || стоит,приглядись.
Я передал массив в функцию,по заданию .
0
 Аватар для Annemesski
2674 / 1336 / 480
Регистрация: 08.11.2016
Сообщений: 3,693
22.04.2020, 09:49
Норм, вполне на семерку, можно оптимизировать проверку условия обмена: если сумма соседних элементов нечетная - значит рядом находятся четный и нечетный элементы - следовательно производим обмен, если же сумма четная - значит рядом либо два четных, либо два нечетных - обмен значений не нужен.
0
0 / 0 / 0
Регистрация: 23.03.2020
Сообщений: 34
22.04.2020, 09:51  [ТС]
Цитата Сообщение от Garryso Посмотреть сообщение
Первая arr[a]%!=0 && arr[a+1] == 0 . Вторая такая же,но наоборот. между этими частями || стоит,приглядись.
я написал до того,как чекнул твой.год сорри слепой.
0
7438 / 5030 / 2892
Регистрация: 18.12.2017
Сообщений: 15,692
22.04.2020, 13:59
Цитата Сообщение от Garryso Посмотреть сообщение
Я передал массив в функцию,по заданию
напишите оригинал условия задачи. только после этого можно будет что-либо сказать насчёт кода.
0
0 / 0 / 0
Регистрация: 23.03.2020
Сообщений: 34
23.04.2020, 10:31  [ТС]
Объявите массив типа int и выделите память память для 12-ти элементов. Необходимо написать функцию, которая поменяет значения четных и нечетных ячеек массива.
0
7438 / 5030 / 2892
Регистрация: 18.12.2017
Сообщений: 15,692
23.04.2020, 11:43
Garryso, в задаче речь идёт о чётных и нечётных ячейках (то есть индексах или номерах элементов), поэтому
проверять сами элементы на чётность
Цитата Сообщение от Garryso Посмотреть сообщение
arr[a] % 2 != 0
не нужно

условие задачи не чёткое - не указано значения каких именно ячеек менять. если соседних:
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
#include <iostream>
#include <cstdlib>
#include <ctime>
using namespace std;
 
void Random (int *a, int n)
{
    for (int i = 0; i < n; i++)        
        a[i]=rand()%9 + 1;
} 
 
void Swap_p(int *a, int n)
{   
    int temp;
    for (int i = 0; i < n; i+=2)
    {   
        temp=a[i];  
        a[i]=a[i+1];
        a[i+1] = temp;       
    }
}
 
void Print (int *a, int n) 
{
    for (int i = 0; i < n; i++)    
        cout << a[i] << " ";
    cout << "\n";    
}
 
int main()
{
    srand((int)time(0));
    const int n=12;
    int a[n];   
   
    Random(a,n);
    Print(a,n);
    Swap_p(a,n);
    Print(a,n);
system("pause");
return 0;
}
0
0 / 0 / 0
Регистрация: 23.03.2020
Сообщений: 34
23.04.2020, 12:29  [ТС]
соседних . Допустим 112 , получиться - 121. проверка тогда нужна будет.
1352 - 1325
0
фрилансер
 Аватар для Алексей1153
6466 / 5688 / 1131
Регистрация: 11.10.2019
Сообщений: 15,133
23.04.2020, 12:42
Цитата Сообщение от Garryso Посмотреть сообщение
Объявите массив типа int и выделите память память для 12-ти элементов. Необходимо написать функцию, которая поменяет значения четных и нечетных ячеек массива.
дословное выполнение задания:

C++
1
2
3
4
5
int arr[]{1,2,3,4,5,6,7,8,9,10,11,12};
for(auto& item:arr)
{
      item=0;
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
23.04.2020, 12:42
Помогаю со студенческими работами здесь

Поменять местами четные и нечетные элементы массива
Здравствуйте! помогите разобраться, нужно поменять местами четные и нечетные элементы массива, результат записать в тот же массив,...

Поменять местами четные и нечетные элементы массива
Помогите пожалуйста. Нужно в лазарусе программу написать. &quot;Дан целочисленный массив,нужно поменять местами четные и не четные...

Поменять местами четные и нечетные элементы одномерного массива
Помогите решить задачу в Delphi Задача В заданном одномерном массиве размерности N (массив заполнен произвольно). Поменять...

Поменять местами четные и нечетные элементы заданного массива
помогите найти ошибку в задаче Дан массив надо поменять местами четные и нечетные элементы. Sub one() Dim i, n, s, A as integer n =...

Массив: поменять местами четные элементы массива на нечетные
Двухмерный массив любого размера состоящий из случайных цифр. Нужно поменять местами Четные элементы массива на нечетные


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

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему
Новые блоги и статьи
AkelPad-скрипты, структуры, и немного лирики..
testuser2 05.04.2026
Такая программа, как AkelPad существует уже давно, и также давно существуют скрипты под нее. Тем не менее, прога живет, периодически что-то не спеша дополняется, улучшается. Что меня в первую очередь. . .
Отображение реквизитов в документе по условию и контроль их заполнения
Maks 04.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеСпецтехники", разработанного в конфигурации КА2. Данный документ берёт данные из другого нетипового документа. . .
Фото всей Земли с борта корабля Orion миссии Artemis II
kumehtar 04.04.2026
Это первое подобное фото сделанное человеком за 50 лет. Снимок называют новым вариантом легендарной фотографии «The Blue Marble» 1972 года, сделанной с борта корабля «Аполлон-17». Новое фото. . .
Вывод диалогового окна перед закрытием, если документ не проведён
Maks 04.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: реализовать программный контроль на предмет проведения документа. . .
Программный контроль заполнения реквизитов табличной части документа
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: 1. Реализовать контроль заполнения реквизита. . .
wmic не является внутренней или внешней командой
Maks 02.04.2026
Решение: DISM / Online / Add-Capability / CapabilityName:WMIC~~~~ Отсюда: https:/ / winitpro. ru/ index. php/ 2025/ 02/ 14/ komanda-wmic-ne-naydena/
Программная установка даты и запрет ее изменения
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: при создании документов установить период списания автоматически. . .
Вывод данных в справочнике через динамический список
Maks 01.04.2026
Реализация из решения ниже выполнена на примере нетипового справочника "Спецтехника" разработанного в конфигурации КА2. Задача: вывести данные из ТЧ нетипового документа. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru