МАССИВЫ. УСЛОВНЫЕ ОПЕРАТОРЫ. ОПЕРАТОР 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; }
Объяснение кода листинга программы
- Объявление функции
shift_right
, которая сдвигает элементы массива вправо на указанное количество позиций. - Объявление функции
main
, которая является точкой входа в программу. - Инициализация генератора случайных чисел с помощью
srand(time(NULL))
. - Объявление константы
n
для размера массива. - Объявление массива
a
размеромn
. - Заполнение массива
a
случайными числами от 0 доn-1
с помощью циклаfor
и функцииrand()
. - Вывод содержимого массива на экран с помощью цикла
for
и функцииprintf()
. - Получение значения переменной
k
с помощью функцииscanf()
. - Вызов функции
shift_right(a, n, k)
для сдвига элементов массиваa
вправо на указанное количество позиций. - Вывод обновленного содержимого массива на экран с помощью цикла
for
и функцииprintf()
. - Возврат значения 0 из функции
main()
, что означает успешное завершение программы.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д