Осуществить сдвиг элементов массива в ​​направлении младших индексов на заданное количество позиций - C (СИ)

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

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

Осуществить сдвиг элементов массива Y (m) в ​​направлении младших индексов на заданное количество позиций k <m заполняя нулями позиции, какие освобождаются помогите , массивы не понимаю .

Решение задачи: «Осуществить сдвиг элементов массива в ​​направлении младших индексов на заданное количество позиций»

textual
Листинг программы
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <time.h>
  4.  
  5.  
  6. int gen_rand_range(int start, int stop) {
  7.     return (rand() % (stop - start));
  8. }
  9.  
  10. // Смещение элементов массива влево
  11. void shift_left(int m, int k, int *arr) {
  12.     int i = k; // Для просмотра массива с точки отсчета
  13.     for(; i < m; ++i) {
  14.         arr[i - k] = arr[i]; // смещение елемнта влево
  15.     }
  16.  
  17.      // заполнение нолями
  18.     for(i = m - k; i < m; ++i) {
  19.         arr[i] = 0;
  20.     }
  21. }
  22.  
  23. void print_array(int m, int *arr) {
  24.     int i = 0;
  25.     int line = m / 2;
  26.     for(; i < m; ++i) {
  27.         if(i == line) {
  28.             fprintf(stdout, "\n");
  29.         }
  30.         fprintf(stdout, "%3d ", arr[i]);
  31.     }
  32. }
  33.  
  34. void init_array(int m, int start, int stop, int *arr) {
  35.     int i = 0;
  36.     for(; i < m; ++i) {
  37.         arr[i] = gen_rand_range(start, stop);
  38.     }
  39. }
  40.  
  41. int main(int argc, char *argv[]) {
  42.     srand(time(NULL));
  43.    
  44.     int SIZE = 10;
  45.     int POINT = 4;
  46.    
  47.     int arr[SIZE];
  48.    
  49.     init_array(SIZE, 0, 5, arr);
  50.     print_array(SIZE, arr);
  51.     fprintf(stdout, "\n---------------------\n");
  52.     shift_left(SIZE, POINT, arr);
  53.     print_array(SIZE, arr);
  54.     fprintf(stdout, "\n---------------------\n");
  55.    
  56.     return 0;
  57. }

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

  1. #include , #include , #include - включение необходимых для работы программы заголовочных файлов
  2. int gen_rand_range(int start, int stop) - генерация случайного числа в заданном диапазоне
  3. *void shift_left(int m, int k, int arr)** - сдвиг элементов массива влево на k позиций
  4. *void print_array(int m, int arr)** - вывод элементов массива на экран в виде столбца
  5. *void init_array(int m, int start, int stop, int arr)** - инициализация элементов массива случайными числами в заданном диапазоне
  6. *int main(int argc, char argv[])** - точка входа в программу
  7. srand(time(NULL)); - инициализация генератора случайных чисел текущим временем
  8. int SIZE = 10;, int POINT = 4; - определение размеров массива и количества сдвигаемых элементов
  9. int arr[SIZE]; - создание массива типа int на 10 элементов
  10. init_array(SIZE, 0, 5, arr); - инициализация массива случайными числами от 0 до 5
  11. print_array(SIZE, arr); - вывод инициализированного массива на экран
  12. fprintf(stdout, \n---------------------\n); - разделительный столбец на экране
  13. shift_left(SIZE, POINT, arr); - сдвиг элементов массива влево на 4 позиции
  14. print_array(SIZE, arr); - вывод измененного массива на экран
  15. fprintf(stdout, \n---------------------\n); - разделительный столбец на экране
  16. return 0; - завершение работы программы

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


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

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

15   голосов , оценка 3.8 из 5

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

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

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