0 / 0 / 0
Регистрация: 08.03.2016
Сообщений: 37
1

Функция: переставить в обратном порядке k элементов массива, начиная с i-го

11.03.2017, 13:09. Показов 2736. Ответов 5
Метки нет (Все метки)

Добрый день. Помогите, пожалуйста, составить функцию, которая переставляет в обратном порядке k элементов массива
A, начиная i-го (числа i и k задается пользователем):
A[1], A[2], …, A[i–1], A[i+k], A[i+k–1], …, A[i+1], A[i], A[i+k+1], …, A[n].
Массив динамический.
__________________
Помощь в написании контрольных, курсовых и дипломных работ, диссертаций здесь
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
11.03.2017, 13:09
Ответы с готовыми решениями:

Переставить в обратном порядке последние N элементов массива
Помогите, пожалуйста! Мне надо понять, как эта программа работает. Я еще не хорошо знаю Си....

Не использую доп. элементов массива переставить элементы массива в обратном порядке
Не использую доп. элементов массива переставить элементы массива в обратном порядке Вот что...

Задача:Дан массив из N элементов. Переставить в обратном порядке элементы массива с 1 - го по K (1<= K <= N )
Привет, помогите решить задачи: Задача 1:Дан массив из N элементов. Переставить в обратном порядке...

Переставить в обратном порядке все положительные элементы вещественного массива из n элементов
Добрый день. Есть задание: надо написать для формы класс, в котором требуется переставить в...

5
28 / 26 / 14
Регистрация: 15.10.2012
Сообщений: 60
11.03.2017, 19:18 2
Лучший ответ Сообщение было отмечено maxcot как решение

Решение

maxcot, функция, производящая необходимые вам действия может быть оформлена так:
C
1
2
3
4
5
6
7
8
int j;  /* Переменная для цикла */
int i, k; /* Заданы пользователем  */
 
i--;   /* Поправка т.к. люди в отличие от машин считают с 1 */
for (j=0; j<k/2; j++)
{
    swat(i+j, i+k-j-1);
}
Суть в том, что k элементов переставляются попарно: первый с последним, второй с предпоследним и т.д. Сама перестановка вынесена в отдельную функцию swat(индекс первого элемента в массиве, индекс второго элемента).
Это если полностью убрать мишуру с вводом данных, выделением памяти и т.д. Если нужна мишура - дайте знать)
1
Mournful Max
11.03.2017, 19:34
  #3

Не по теме:

De_N, swat() :)

0
0 / 0 / 0
Регистрация: 08.03.2016
Сообщений: 37
12.03.2017, 15:47  [ТС] 4
De_N, а как сделать без функции swat?
0
28 / 26 / 14
Регистрация: 15.10.2012
Сообщений: 60
12.03.2017, 17:46 5
maxcot, функция swat в вашем случае может иметь следующий вид:
C
1
2
3
4
5
6
7
void swat(int a_ind, int b_ind)
{
int temp;
temp = mass[a_ind];
mass[a_ind] = mass[b_ind];
mass[b_ind] = temp;
}
где mass - это массив (в данном случае массив целых чисел).
Т.е. если нужно избавиться от этой функции, просто "разверните" её, подставив в тело цикла for (Пост #2, 7-я строка).
0
0 / 0 / 0
Регистрация: 08.03.2016
Сообщений: 37
12.03.2017, 18:47  [ТС] 6
De_N, как это записать в одну общую функцию для перестановки?


Почему мы в условии пишем j=0? У нас же не обязательно с нулевого элемента начинается перестановка, а с i-го

Добавлено через 10 минут
De_N, De_N, а все, разобрался.
Спасибо большое
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
12.03.2017, 18:47
Помогаю со студенческими работами здесь

Переставить в одномерном массиве первые k элементов в конец массива в обратном порядке
Переставить в одномерном массиве первые k элементов в конец массива в обратном порядке, то...

Переставить положительные элементы в обратном порядке, не меняя положения остальных элементов массива
Условие задачи: Переставить положительные элементы в обратном порядке, не меняя положения...

Функция: переставить в обратном порядке элементы в односвязном списке
Здравствуйте, помогите пожалуйста Написать на С++ функцию, переставляющую в обратном порядке...

Функция: переписать значения элементов массива целых чисел в другой массив в обратном порядке
Вот задание: Написать функцию, которая переписывает значения элементов массива целых чисел в...

Переставить элементы массива в обратном порядке
Дан массив: type Vector=array of integer; Написать рекурсивную программу, которая: 1)...

Переставить элементы массива в обратном порядке
Необходимо написать программу, которая переворачивает массив елементов.


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2022, CyberForum.ru