Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.77/13: Рейтинг темы: голосов - 13, средняя оценка - 4.77
0 / 0 / 0
Регистрация: 04.05.2018
Сообщений: 1
1

Переставить местами элементы массива так, чтобы сначала были элементы на четных позициях, а потом на нечетных

04.05.2018, 15:02. Показов 2341. Ответов 6
Метки нет (Все метки)

нужно переставить местами элементы массива так, чтобы сначала были элементы на четных позициях, а потом на нечетных
например массив: { 8 9 4 5 3 2 1 0 }
ответ: { 9 5 2 0 8 4 3 1 }
0

Помощь в написании контрольных, курсовых и дипломных работ здесь.

Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
04.05.2018, 15:02
Ответы с готовыми решениями:

Переставить элементы массива так, чтобы сначала были неотрицательные элементы, затем отрицательные
Дан массив из N действительных чисел. Переставить элементы массива так, чтобы сначала расположились...

Переставить элементы массива так, чтобы сначала шли нули, потом отрицательные, а затем положительные элементы
Дан одномерный массив, который содержит не более 60 вещественных чисел, среди которых есть...

Расположить элементы массива так, чтобы сначала были 0, а потом 1
Дан массив из 0 и 1, расположить элементы так, чтобы сначала были 0, а потом 1(методы сортивровки...

Расположить элементы массива так, чтобы сначала были отрицательные и нули, а потом положительные
Дан массив из 12 элементов. Расположить элементы так,чтобы сначала были отрицательные и нули,а...

6
6475 / 4405 / 2521
Регистрация: 18.12.2017
Сообщений: 13,779
04.05.2018, 15:33 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
#include <iostream>
#include <ctime>
using namespace std;
 
int main()
{
    srand(time(0));
    int n, m=0;
    cout <<"Enter n: "; cin >>n;
 
    double*a = new double[n];
    double*b = new double[n];
    
    for (int i = 0; i < n; i++)
      {
      a[i]=rand()%9 + 1;
      cout <<a[i]<<" ";
      }
    cout <<endl;
    
    for (int i = 1; i < n; i+=2)
    b[m++]=a[i];     
    for (int i = 0; i < n; i+=2)
    b[m++]=a[i];
    
    delete[]a;
    a=b;    
    for (int i = 0; i < n; i++)
    cout <<a[i]<<" ";      
    cout <<endl;
    delete[]a;    
system("pause");
return 0;
}
0
Заблокирован
04.05.2018, 15:42 3
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
#include <cstdlib> // для system
#include <iostream> 
#include <string>
 
using std::cout;
using std::cin;
using std::endl;
 
int main()
{    
        int a[]={8, 9, 4, 5, 3, 2, 1, 0};
        int b[]={0, 0, 0, 0, 0, 0, 0, 0};
        int i,j,n;
        setlocale(0, "");
        n=8;
        for (i=0;i<n;i++)
        {
            j=0;
            if(((i+1)%2)==0) 
            {
                j++;
                b[j]=a[i];
        cout <<j<<" "<<b[j]<< endl;
            }
        }
        for (i=0;i<n;i++)
        {
            if(!(((i+1) % 2)==0))
            {
                j++;
                b[j]=a[i];
        cout <<j<<" "<<b[j]<< endl;
            }
        }
    system("pause"); // Только для тех, у кого MS Visual Studio
}
0
6475 / 4405 / 2521
Регистрация: 18.12.2017
Сообщений: 13,779
04.05.2018, 16:46 4
slava_psk, по условию нужно переставить элементы массива, а не создать новый массив с переставленными элементами первого массива.
0
Заблокирован
04.05.2018, 19:00 5
Yetty, вы же все равно используете вспомогательный массив.
0
6475 / 4405 / 2521
Регистрация: 18.12.2017
Сообщений: 13,779
04.05.2018, 22:32 6
Цитата Сообщение от slava_psk Посмотреть сообщение
Yetty, вы же все равно используете вспомогательный массив.
есть такое дело - пока не подберу алгоритм как обойтись без temp-массива (может кто и предложит такой вариант) - но затем удаляю первоначальный, и переименовываю temp-массив на исходный. Ваш вариант вполне - просто не хватает строки присвоения значениям массива 'a' значений массива 'b'.
0
1480 / 944 / 811
Регистрация: 30.04.2016
Сообщений: 3,298
04.06.2018, 18:52 7
Секрет секретов, здравствуйте! Вот еще один рабочий вариант без использования дополнительного массива: Составить программу по преобразованию массива, чтобы сначала шли элементы с чётными индексами, а затем - с нечётными
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
04.06.2018, 18:52

Переставить элементы массива так, чтобы сначала стояли все числа 8, потом – 7
2. Перестановка чисел в массиве. (40 баллов) Массив состоит из чисел 7, 8 и 9. Переставить...

Переставить элемента массива, так чтобы сначала было расположены все положительные элементы, потом все отрицательные
Всем добрый вечер! Есть задача: Кто знает как ее решить - помогите, с меня спасибо:)

Переставить элементы массива так, чтобы сначала располагались все 2, потом 3, затем все 4 и, наконец, все 5
В Массиве X(5,7), Каждый элемент равен 2,3,4 или 5 переставить элементы массива так чтобы сначала...

Элементы массива, стоящие на нечётных позициях, переставить в начало массива, а на чётных - в конец
Превратить массив таким образом, чтобы в его первой половине располагались элементы, стоящие в...


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

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

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