Я пишу функцию на C, которая принимает два вектора, v1 и v3, и выполняет умножение вектора на вектор для создания матрицы. v1 — вектор 1xL1, а v3 — вектор 1xL2. Метод выполняет транспонирование v3, умноженное на v1, и печатает матрицу. Это то, что у меня есть до сих пор:
void crossProduct(float *v1, float *v3, int L1, int L2){
int i, j;
float sum;
float c[L2][L1];
for(i = 0; i < L2; i++){
for(j = 0; j < L1; j++){
sum = 0.0;
sum += v3[i] * v1[j];
c[i][j] = sum;
printf("%d", c[i][j]);
}
}
}
Я не получаю ожидаемого результата. Я также хочу, чтобы матрица печаталась в матричной форме, но я не уверен, как это сделать.
sum = 0.0;
неправильным местом или это просто не нужно, так как следующие строки должны бытьc[i][j] = v3[i] * v1[j];
вообще без переменнойsum
? - person Jonathan Leffler   schedule 27.02.2020printf
. Вы включили предупреждения? Если нет, то вот ответ, почему вы всегда должны это делать. - person Gerhardh   schedule 27.02.2020