如何在C中编写一个函数来对两个向量进行叉积

How to write a function to do cross product of two vectors in C

我正在用 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]);
        }
      }
    }

我没有得到预期的结果。我也想矩阵打印矩阵形式,但我不知道如何。

您需要对浮点数使用 %f 格式,而不是 %d

要获得可读数组,请在每个值后放置一个 space,并在每行后放置一个换行符。

 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("%f ", c[i][j]);
        }
        printf("\n");
      }
    }