Циклический сдвиг элементов массива влево на 8 позиций - C (СИ)
Формулировка задачи:
Здравствуйте!!! Помогите пожалуйста решить задачу! Си...
Надо осуществить циклический сдвиг элементов массива влево на 8 позиций !!!
Заранее спасибо.
Решение задачи: «Циклический сдвиг элементов массива влево на 8 позиций»
textual
Листинг программы
- #include "stdio.h"
- /* Вращение массива Arr из n элементов влево m раз */
- void lrot (int* Arr, int n, int m)
- {
- int tmp,i,j;
- for (j=1; j<=m; j++)
- {
- tmp=Arr[n-1];
- for (i=n-1; i>=1; i--) Arr[i]=Arr[i-1];
- Arr[0]=tmp;
- }
- }
- int main(int argc, char* argv[])
- {
- int Arr[]={1,2,3,4,5,6,7,8,9,10,11};
- int i;
- printf("Initial array:\n");
- for (i=0; i<=10; i++) printf("%d ",Arr[i]);
- printf("\n");
- lrot(Arr,11,8);
- printf("Array after rotating:\n");
- for (i=0; i<=10; i++) printf("%d ",Arr[i]);
- printf("\n");
- return 0;
- }
Объяснение кода листинга программы
В данном коде реализован алгоритм циклического сдвига элементов массива влево на 8 позиций. Алгоритм работает следующим образом:
- В функции
lrot
объявлены три переменные:tmp
(временная переменная),i
иj
(для работы в циклах). Значениеn
- размер массива, передается в функцию из аргумента. - Внешний цикл
for
выполняетсяm
раз, гдеm
- количество сдвигов. - На каждой итерации внешнего цикла во временную переменную
tmp
копируется последний элемент массиваArr
. - Внутренний цикл
for
служит для сдвига элементов массива влево на одну позицию. Он выполняется отn-1
до 1. - На каждой итерации внутреннего цикла элемент
Arr[i-1]
заменяет элементArr[i]
. - После завершения внутреннего цикла, в
Arr[0]
записывается значениеtmp
, которое было сохранено во временной переменной. - После завершения внешнего цикла, массив выводится на экран.
В функции
main
определен массивArr
размером 11 элементов и инициализирован значениями от 1 до 11. - С помощью цикла
for
и функцииprintf
элементы массива выводятся на экран. - Затем вызывается функция
lrot
, передавая в нее массивArr
и два аргумента:n
иm
. Значениеn
используется как размер массива, аm
определяет количество сдвигов. - После выполнения функции
lrot
, массив выводится на экран снова.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д