Циклический сдвиг элементов массива влево на 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 позиций. Алгоритм работает следующим образом:

  1. В функции lrot объявлены три переменные: tmp (временная переменная), i и j (для работы в циклах). Значение n - размер массива, передается в функцию из аргумента.
  2. Внешний цикл for выполняется m раз, где m - количество сдвигов.
  3. На каждой итерации внешнего цикла во временную переменную tmp копируется последний элемент массива Arr.
  4. Внутренний цикл for служит для сдвига элементов массива влево на одну позицию. Он выполняется от n-1 до 1.
  5. На каждой итерации внутреннего цикла элемент Arr[i-1] заменяет элемент Arr[i].
  6. После завершения внутреннего цикла, в Arr[0] записывается значение tmp, которое было сохранено во временной переменной.
  7. После завершения внешнего цикла, массив выводится на экран. В функции main определен массив Arr размером 11 элементов и инициализирован значениями от 1 до 11.
  8. С помощью цикла for и функции printf элементы массива выводятся на экран.
  9. Затем вызывается функция lrot, передавая в нее массив Arr и два аргумента: n и m. Значение n используется как размер массива, а m определяет количество сдвигов.
  10. После выполнения функции lrot, массив выводится на экран снова.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

12   голосов , оценка 3.833 из 5
Похожие ответы