Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/61.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在C语言中编写两个向量的叉积函数_C_Matrix_Vector_Cross Product - Fatal编程技术网

如何在C语言中编写两个向量的叉积函数

如何在C语言中编写两个向量的叉积函数,c,matrix,vector,cross-product,C,Matrix,Vector,Cross Product,我正在用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++){

我正在用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]);
        }
      }
    }
void叉积(浮点*v1,浮点*v3,整数L1,整数L2){
int i,j;
浮点数;
浮点数c[L2][L1];
对于(i=0;i

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

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

要获得可读数组,请在每个值后放置空格,在每行后放置换行符

 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");
      }
    }
void叉积(浮点*v1,浮点*v3,整数L1,整数L2){
int i,j;
浮点数;
浮点数c[L2][L1];
对于(i=0;i
总和=0.0
在错误的位置,或者它只是没有必要,因为下一行应该是
c[i][j]=v3[i]*v1[j]
完全没有变量
sum
?编译器应该已经告诉您
printf
中有错误的格式说明符。是否启用了警告?如果没有,下面是答案,为什么你应该一直这样做。