Я пытаюсь переставить мой первый массив (vector1) в соответствии с последовательностью второго массива индексов (vector2)
Например, если: vector1 = 1 2 3 4 и vector2 = 0 3 12
мой желаемый вывод должен быть: 1 4 2 3
Однако выполнение моего кода непрерывно прерывается из-за использования «недопустимого индекса массива». Кто-нибудь сможет указать, где я иду не так? Большое спасибо заранее.
#include <stdio.h>
#include <math.h>
int main(void) {
int n;
printf("Enter vector length: ");
scanf("%d", &n);
printf("Enter vector: ");
int vector1[n];
int i = 0;
while (i < n) {
scanf("%d", &vector1[i]);
i++;
}
printf("Enter permutation: ");
int vector2[n];
i = 0;
int j = 0;
while (i < n) {
scanf("%d", &vector2[j]);
i++;
}
i = 0;
int vector3[n];
while (i < n) {
vector3[i] = vector1[vector2[i]];
i++;
}
printf("%d", vector3[i]);
}