В чем ошибку,почему программа не работает - C (СИ)

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

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

нужно создать массив,длинной n,n-задать с клавиатуры и сдвинуть его на k элементов в права #include <stdio.h> #include <stdlib.h> #include <time.h> int main(void) { int step, temp, vect_size, m_min = 5, m_max = 100; printf("\n Mas size="); scanf("%d", &vect_size); printf("\n k="); scanf("%d", &step); srand(time(NULL)); int mas[vect_size+step]; printf("Initial vector:\n"); for (int i = 0; i < vect_size; i++) { mas[i]=m_min-1 + rand() % m_max+1 ; printf("%d ",mas[i]); }; for (int j = 0; j<step; j++) { temp = mas[vect_size-1]; for (int i = vect_size-1; i>0; i--) { mas[i]=mas[i-1]; } mas[0]=temp; }; printf("\nRezult vector:\n"); for (int i=0; i<vect_size; i++) printf("%d ",mas[i]); system("pause"); return 0; }

Решение задачи: «В чем ошибку,почему программа не работает»

textual
Листинг программы
mas = (int *) malloc(vect_size * sizeof(int));  // + step не нужен

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

  1. mas - переменная типа int*, которая будет хранить адрес первого элемента массива.
  2. vect_size - переменная типа int, которая содержит размер массива.
  3. sizeof(int) - операция, которая возвращает размер памяти, занимаемый типом данных int, в данном случае 4 байта.
  4. malloc - функция, которая выделяет память под массив int размером vect_size.
  5. step - переменная типа int, которая не используется в данном коде и должна быть удалена или закомментирована.

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

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