Составить 2 функции. Одна из функций циклически сдвигает массив длины N вправо на k позиций, а другая - на k позиций вле - C (СИ)

Узнай цену своей работы

Формулировка задачи:

Составить 2 функции. Одна из функций циклически сдвигает массив длины N вправо на k позиций, а другая - на k позиций влево. 1. Составить функцию с оператором return. 2. Преобразовать функцию к void-функции, составленную в рамках языка С. 3. Преобразовать функцию к void-функции, использующую возможно*сти языка C++.

Решение задачи: «Составить 2 функции. Одна из функций циклически сдвигает массив длины N вправо на k позиций, а другая - на k позиций вле»

textual
Листинг программы
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
 
void shift_left (int* a, const int n, int k)    // сдвиг влево
{
    if (k<0) return;
    int i, f, t, m = n-1;
    if (k>n) k %= n;
    for (i=0; i<k; i++)
    {
        t = a[0];
        for (f = 1; f<n; f++)
            a[f-1] = a[f];
        a[m] = t;
    }
}
 
int main (void)
{
    srand(time(NULL));          // точка отсчета рнд
    const int n = 6;                // размер массива
    int a[n];                       // массив
    int i, k;
 
    for (i=0; i<n; i++)
    {
        a[i] = rand() %n;           // заполняем массив случайными
        printf("%4d", a[i]);        // выводим на экран
    }
    printf("\n");
 
    printf("input K, please: ");    // узнаем величину сдвига влево
    scanf("%i", &k);
 
    shift_left(a, n, k);            // сдвигаем влево на k позиций
 
    for (i=0; i<n; i++)         // массив снова на экран
        printf("%4d", a[i]);
    printf("\n");
 
    return 0;
}

Объяснение кода листинга программы

  1. Включаем необходимые заголовочные файлы
  2. Объявляем функцию shift_left, которая принимает три аргумента: указатель на массив, его размер и величину сдвига. Функция осуществляет сдвиг элементов массива влево на указанное количество позиций
  3. В функции main генерируем случайные значения для массива с помощью функции rand(). Выводим массив на экран
  4. Запрашиваем у пользователя величину сдвига с помощью функции scanf(). Осуществляем сдвиг элементов массива с помощью функции shift_left()
  5. Выводим массив после сдвига на экран
  6. Возвращаем 0, чтобы указать на успешный конец работы программы

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


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

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

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