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

Элементы массива стоящие в четных позициях перенести в начало массива

17.03.2018, 09:18. Показов 1471. Ответов 8
Метки нет (Все метки)

8. С одномерным массивом, состоящим из n вещественных элементов, выполнить следующее: Преобразовать массив таким образом, чтобы в первой его половине располагались элементы, стоявшие в четных позициях, а во второй половине – элементы, стоявшие в нечетных позициях. Используя эту функцию, определить вышеуказанное к заданным массивам t[10], сделать это через указатели

Не могу понять как это сделать с указателями
0

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

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

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

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

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

Отсортировать методом быстрой сортировки элементы массива, стоящие на четных позициях
Имеется одномерный массив длиной N = 50. Отсортировать методом быстрой сортировки элементы массива,...

8
1344 / 914 / 421
Регистрация: 30.10.2017
Сообщений: 2,571
17.03.2018, 09:56 2
Сделайте без указателей для начала и покажите решение.
0
3 / 3 / 1
Регистрация: 02.05.2016
Сообщений: 122
17.03.2018, 11:22  [ТС] 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
37
38
39
40
41
42
43
44
45
46
47
48
49
50
#include <iostream>
using namespace std;
void vvod(int f[], int n) {
    for (int i = 0; i < n; i++) {
        f[i] = rand() % 55;
        cout << f[i] << endl;
    }
    cout << "====================" << endl;
 
}
void swap(int f[], int n) {
    int j, k, v[30];
    j = k = 0;
    for (int i = 0; i < n; i++)  //Переставляем нечетные цифры
    {
 
        if (i % 2 == 0)
        {
            v[j] = f[i];
            j++;
            k++;
            f[i] = 0;
        }
    }
    for (int i = 0; i < n; i++)  //Переставляем четные цифры
    {
        if (f[i] != 0)
        {
            v[k] = f[i];
            k++;
        }
    }
    for (int i = 0; i <n; i++)
        cout << v[i] << " ";
        
}
void main() {
 
    int a[10],b[20];
    
    vvod(a, 10);
    vvod(b, 20);
    swap(a, 10);
    cout << " " << endl;
    swap(b,20);
    
    
    
    system("pause");
}
0
1344 / 914 / 421
Регистрация: 30.10.2017
Сообщений: 2,571
17.03.2018, 11:55 4
Aidar3007, если бы вы переставляли элементы массива, не создавая промежуточный массив, можно было бы нагляднее использовать указатели при перестановке элементов массива.

Ну а так, можно к примеру показать косвенную адресацию к элементам массива через сложение в указателях.
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
void swap(int f[], int n) {
    int j, k, v[30];
    j = k = 0;
    for (int i = 0; i < n; i++)  //Переставляем нечетные цифры
    {
 
        if (i % 2 == 0)
        {
            *(v + j) = *(f + i);
            j++;
            k++;
            *(f + i) = 0;
        }
    }
    for (int i = 0; i < n; i++)  //Переставляем четные цифры
    {
        if (*(f + i) != 0)
        {
            *(v + k) = *(f + i);
            k++;
        }
    }
    for (int i = 0; i <n; i++)
        cout << *(v + i) << " ";
}
0
3 / 3 / 1
Регистрация: 02.05.2016
Сообщений: 122
17.03.2018, 12:30  [ТС] 5
QuakerRUS, А можете отсортировать с одним массивом?
0
1344 / 914 / 421
Регистрация: 30.10.2017
Сообщений: 2,571
17.03.2018, 13:03 6
C++
1
2
3
4
5
6
7
8
9
10
11
void swap(int arr[], int size)
{
    int temp;
 
    for (int i = 1, j = size - 2 + size % 2; i < size / 2; i += 2, j -= 2)
    {
        temp = *(arr + i);
        *(arr + i) = *(arr + j);
        *(arr + j) = temp;
    }
}
0
3 / 3 / 1
Регистрация: 02.05.2016
Сообщений: 122
17.03.2018, 13:51  [ТС] 7
QuakerRUS, О спасибо
0
1743 / 1336 / 1407
Регистрация: 28.10.2016
Сообщений: 4,267
17.03.2018, 14:32 8
Внизу страницы раздел "Похожие темы". Там предостаточно различных примеров
0
3 / 3 / 1
Регистрация: 02.05.2016
Сообщений: 122
18.03.2018, 08:25  [ТС] 9
Hitoku, Не замечал
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
18.03.2018, 08:25

Построить массив В, содержащий элементы массива А, стоящие в четных позициях и отсортировать его
Здравствуйте господа программисты) Очень нужна ваша помощь в написании программы на языке С++,...

Quicksort, отсортировать элементы массива, стоящие на четных позициях, чтобы они располагались по убыванию
Имеется одномерный массив длиной N = 50. Отсортировать методом быстрой сортировки элементы массива,...

Преобразовать массив: перенести элементы с четных позиций в начало массива, а с нечетных - в конец
/*1. Найти минимальный по модулю элемент массива. 2. Найти сумму модулей элементов массива,...

Заменить элементы массива,стоящие на нечетных позициях, на среднее арифметическое массива
Заменить элементы массива,стоящие на нечетных позициях, на среднее арифметическое массива


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

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

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