Переставить последний элемент динамического массива на место k-ого элемента - C (СИ)

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

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

Переставить последний элемент массива на место k-ого элемента. При этом k-ый, (k+1)-ый,..., предпоследний элементы сдвинуть вправо на 1 позицию.

Решение задачи: «Переставить последний элемент динамического массива на место k-ого элемента»

textual
Листинг программы
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <time.h>
  4. #define N 100
  5.  
  6. void array_shift(int *pt, int n, int k) {
  7.  
  8.     int temp, i;
  9.     temp = pt[n - 1];
  10.     for  (i = n-1; i > k; i--)
  11.     {
  12.         pt[i] = pt[i - 1];
  13.     }
  14.     pt[k] = temp;
  15. }
  16.  
  17. int main(void) {
  18.     int i, k, n;
  19.     int *mas = (int*)malloc(N*sizeof(int));
  20.     printf("Enter size of array ");
  21.     scanf_s("%d", &n);
  22.     printf("\n");
  23.     srand(time(NULL));
  24.     for (i = 0; i<n; ++i)
  25.         {
  26.             mas[i] = rand() % 100;
  27.             printf("%d\t", mas[i]);
  28.         }  
  29.     printf("Enter value of k ");
  30.     scanf_s("%d", &k);
  31.     array_shift(mas, n, k);
  32.     printf("\n");
  33.     for (i = 0; i<n; ++i)
  34.     {
  35.         printf("%d\t", mas[i]);
  36.     }
  37.     free(mas);
  38.     system("pause");
  39.     return 0;
  40. }

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

В данном коде выполняется перестановка последнего элемента динамического массива на место k-ого элемента.

  1. В начале программы подключаются необходимые заголовочные файлы: • stdio.h - для работы с функциями ввода-вывода; • stdlib.h - для работы с функцией malloc и free; • time.h - для инициализации генератора случайных чисел.
  2. Затем определяются переменные: • N - размер массива; • n - количество элементов в массиве; • k - номер элемента, на который необходимо переставить последний элемент массива; • mas - указатель на начало массива.
  3. Далее, в функции main, запрашивается размер массива и сохраняется в переменной n.
  4. Массив инициализируется случайными числами от 0 до 99 с помощью функции rand().
  5. После вывода начального состояния массива, запрашивается номер элемента, на который необходимо переставить последний элемент массива.
  6. Вызывается функция array_shift, которая переставляет последний элемент массива на место k-ого элемента.
  7. Выводится обновленное состояние массива.
  8. В конце программы выполняется освобождение памяти, выделенной под массив, с помощью функции free().

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


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

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

8   голосов , оценка 3.875 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы