0
Эта программа должна принимать 2 массива и выполнять точечный продукт для каждого из элементов массива.C Программа - умножение массива указателей
Моя программа прекрасна, если индекс n меньше 5; однако, как только индекс массива будет больше 5, только первый элемент в первом массиве ошибочен (я проверил добавлением инструкции printf в функцию). Я не знаю, как исправить эту ошибку.
#include <stdio.h>
void multi_vec(int *v1, int *v2, int *v3, int n);
int main(void)
{
int n, i;
int v1[n];
int v2[n];
int v3[n];
printf("Enter the length of the two vectors\n");
scanf("%d", &n);
printf("Enter numbers for the first array\n", n);
for (i = 0; i < n; i++) {
scanf("%d", &v1[i]);
}
printf("Enter numbers for the second array\n", n);
for (i = 0; i < n; i++) {
scanf("%d", &v2[i]);
}
multi_vec(v1, v2, v3, n);
for (i = 0; i < n; i++) {
printf("%d", v3[i]);
}
printf("\n");
return 0;
}
void multi_vec(int *v1, int *v2, int *v3, int n)
{
int i;
for (i = 0; i < n; i++) {
*(v3+i) = *(v1+i) * *(v2+i);
}
}
'n' является unintilaized http://rextester.com/AJDX1741 – P0W
Int v1 [п] illegal.even если п инициализируется –
@ machine_1: Вы больше C++ человек, не так ли? VLA в порядке. – EOF