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

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

Восстановить пароль Регистрация
 
NikiKoyot
 Аватар для NikiKoyot
2 / 2 / 0
Регистрация: 08.12.2013
Сообщений: 34
16.01.2014, 16:27     Преобразовать массив так, чтобы элементы с четными и нечетными значениями чередовались #1
Пожалуйста помогите с задачей:
Дан массив целых чисел. Преобразовать его так, чтобы элементы с четными и нечетными значениями чередовались.
а) С помощью дополнительного массива
б) Без дополнительного массива

Добавлено через 12 минут
Массив заполняется случайными числами в диапазоне rand() % 28 - 13; , размер массива 10
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
16.01.2014, 16:27     Преобразовать массив так, чтобы элементы с четными и нечетными значениями чередовались
Посмотрите здесь:

Преобразовать массив так, чтобы сначала располагались все положительные элементы, а потом отрицательные C++
Дан двумерный массив. Преобразовать его так, чтобы новый массив содержал элементы старого, циклически сдвинутые на 2 элемента влево. C++
C++ слить массив А и В по 100 элементов в массив С из 200 элементов так,чтобы элементы А и В чередовались по 10 в c++
C++ Слить массивы А и В по 100 элементов в массив С из 200 элементов так,чтобы элементы А и В чередовались по 10
C++ Преобразовать массив так чтобы все ненулевые элементы предшествовали нулевым
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
MicM
 Аватар для MicM
820 / 487 / 90
Регистрация: 29.12.2009
Сообщений: 1,097
Завершенные тесты: 1
16.01.2014, 19:18     Преобразовать массив так, чтобы элементы с четными и нечетными значениями чередовались #2
Цитата Сообщение от NikiKoyot Посмотреть сообщение
б) Без дополнительного массива
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
44
45
46
#include <iostream>
#include <ctime>
#include <cstdlib>
 
const int N = 10;
 
int main()
{
    int a[N];
    srand (time(0));
    for (int i=0; i<N; i++)
    {
        a[i]=rand()%28-13;
        std::cout <<a[i] <<' ';
    }
    std::cout <<std::endl;
    int i = 0,j,k,tmp;
    bool f;
    while (i<N-1)
    {
        if ((!(a[i]%2) && !(a[i+1]%2)) || (a[i]%2 && a[i+1]%2))
        {
            j=k=i+1;
            f = false;
            while (j<N && !f)
            {
                if ((!(a[k]%2) && a[j]%2) || (a[k]%2 && !(a[j]%2)))
                    f = true;
                else ++j;
            }
            if (f)
            {
                tmp = a[j];
                a[j] = a[k];
                a[k] = tmp;
                ++i;
            }
            else break;
        }
        else ++i;
    }
    for (int i=0; i<N; i++)
        std::cout <<a[i] <<' ';
    std::cout <<std::endl;
    return 0;
}
NikiKoyot
 Аватар для NikiKoyot
2 / 2 / 0
Регистрация: 08.12.2013
Сообщений: 34
16.01.2014, 19:39  [ТС]     Преобразовать массив так, чтобы элементы с четными и нечетными значениями чередовались #3
MicM, Огромное спасибо!
NikiKoyot
 Аватар для NikiKoyot
2 / 2 / 0
Регистрация: 08.12.2013
Сообщений: 34
21.01.2014, 18:50  [ТС]     Преобразовать массив так, чтобы элементы с четными и нечетными значениями чередовались #4
MicM, Сможешь сделать вариант а)?
Yandex
Объявления
21.01.2014, 18:50     Преобразовать массив так, чтобы элементы с четными и нечетными значениями чередовались
Ответ Создать тему
Опции темы

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