Ошибка сегментации, неправильный ответ
Я хочу знать, в чем заключается ошибка сегментации...И скажите мне, почему моя программа показывает ошибку сегментации в Hackerrank.
Что я уже пробовал:
Вопрос>-
Дан массив из N чисел. Поверните элементы массива в указанном пользователем направлении (влево или вправо). Если индекс вращения отрицательный, поверните влево, в противном случае поверните вправо
входной формат
Входные данные будут содержать 2 строки.
Первая строка содержит 2 целых числа, указывающих количество элементов и индекс вращения.
Вторая строка содержит элементы массива, разделенные пробелами.
Ограничения
N >= 1
выходной формат
Элементы массива, разделенные пробелами
Пример Ввода 0
7 -2
1 2 3 4 5 6 7
Пример Результата 0
3 4 5 6 7 1 2
Пояснение 0
-2 означает 2 левых поворота.
Таким образом, 1, 2 идет в заднюю часть массива
Ответ>-
#include <stdio.h> //#include<string.h> int main() { int i,j,n,k,z; int o=0; int A[99999],B[99999]; scanf("%d%d",&n,&k); //int *A=malloc(sizeof(int)*n); //int *B=malloc(sizeof(int)*n); for(i=0; i<n; i++) scanf("%d",&A[i]); if(k<0) { z=(-1)*k; for(i=z; i<n; i++) B[o++]=A[i]; for(i=0; i<z-1; i++) B[o++]=A[i]; for(i=z-1; i<z; i++) B[o++]=A[i]; //free(A); } else if(k>0) { for(j=n-k; j<n; j++) B[o++]=A[j]; for(j=0; j<n-k-1; j++) B[o++]=A[j]; for(j=n-k-1; j<n-k; j++) B[o++]=A[j]; // free(A); } for(i=0; i<n; i++) printf("%d ",B[i]); return 0; }