МАССИВЫ. УСЛОВНЫЕ ОПЕРАТОРЫ. ОПЕРАТОР SWITCH- C - C (СИ)

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

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

Здравствуйте, добрый вечер Мне нужно создать код C, но у меня есть много трудностей в понимании того, что нужно сделать, потому что учебный материал написан на русском языке, я бразилец, и я не могу правильно перевести эту тему на мой язык (португальский). Может кто-нибудь мне помочь? Я считаю, что для тех, у кого есть эти знания, быть легкой задачей. Извините за мое невежество, но мне сложно перевести учебный материал на мой язык (португальский). Это задача: В массиве A[N] осуществите циклический сдвиг на K < N элементов вправо. Последние K элементов при этом перемещаются на первые K позиций. Спасибо.

Решение задачи: «МАССИВЫ. УСЛОВНЫЕ ОПЕРАТОРЫ. ОПЕРАТОР SWITCH- C»

textual
Листинг программы
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
 
void shift_right (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[m];
        for (f = m-1; f >= 0; f--)
            a[f+1] = a[f];
        a[0] = t;
    }
}
 
int main (void)
{
    srand(time(NULL));      // new rnd seed
    const int n = 6;            // size of array
    int a[n];                   // array
    int i;
 
    for (i=0; i<n; i++)             // fill the array
    {
        a[i] = rand() %n;
        printf("%4d", a[i]);            // .. and put array to screen
    }
    printf("\n");
 
    int k;
    printf("input K, please: ");    // get k from keyaboard
    scanf("%i", &k);
 
    shift_right(a, n, k);
 
    for (i=0; i<n; i++)             // put array to screen
        printf("%4d", a[i]);
    printf("\n");
 
    return 0;
}

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

  1. Объявление функции shift_right, которая сдвигает элементы массива вправо на указанное количество позиций.
  2. Объявление функции main, которая является точкой входа в программу.
  3. Инициализация генератора случайных чисел с помощью srand(time(NULL)).
  4. Объявление константы n для размера массива.
  5. Объявление массива a размером n.
  6. Заполнение массива a случайными числами от 0 до n-1 с помощью цикла for и функции rand().
  7. Вывод содержимого массива на экран с помощью цикла for и функции printf().
  8. Получение значения переменной k с помощью функции scanf().
  9. Вызов функции shift_right(a, n, k) для сдвига элементов массива a вправо на указанное количество позиций.
  10. Вывод обновленного содержимого массива на экран с помощью цикла for и функции printf().
  11. Возврат значения 0 из функции main(), что означает успешное завершение программы.

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


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

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

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