Осуществить циклический сдвиг элементов массива влево на M позиций - C (СИ)
Формулировка задачи:
Дан массив N. Осуществить циклический сдвиг элементов массива влево на M позиций. Новый массив заводить нельзя.
Решение задачи: «Осуществить циклический сдвиг элементов массива влево на M позиций»
textual
Листинг программы
#include <stdio.h> //----------------------------------------------------------------------------- int* LeftOffset(int array[], size_t size, size_t offset) { if (offset == 0) { return array; } int buff = array[0]; size_t i; for (i = 1; i < size; ++i) { array[i - 1] = array[i]; } array[size - 1] = buff; LeftOffset(array, size, offset - 1); return array; } //----------------------------------------------------------------------------- void Print(const int array[], size_t size) { size_t i; for (i = 0; i < size; ++i) { printf("%d, ", array[i]); } printf("\b\b \n"); } //----------------------------------------------------------------------------- int main() { int array[10] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10}; LeftOffset(array, 10, 5); Print(array, 10); return 0; }
Объяснение кода листинга программы
В данном коде реализованы две функции:
- Функция
LeftOffset
осуществляет циклический сдвиг элементов массива влево наM
позиций. Перебирает массив от 1-го доM-1
-го элемента и меняет их местами с элементами, идущими после них. Последний элемент массива остается на своем месте. ЕслиM
равно 0, то функция возвращает исходный массив. Формат вызова функции:LeftOffset(array, size, offset)
, где:array
- указатель на начало массива;size
- размер массива;offset
- смещение.
- Функция
Print
выводит элементы массива на экран через запятую. Формат вызова функции:Print(array, size)
, где:array
- указатель на начало массива;size
- размер массива. В функцииmain
создается массивarray
размером 10 и заполняется значениями от 1 до 10. Затем вызывается функцияLeftOffset
, которая осуществляет циклический сдвиг элементов массива влево на 5 позиций. После чего вызывается функцияPrint
, которая выводит элементы массива на экран. В результате выполнения программы на экран будет выведен массив[10, 5, 4, 3, 2, 1, 6, 7, 8, 9]
.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д