Циклический сдвиг элементов массива влево на 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
, массив выводится на экран снова.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д