矢量十字产品在C.

时间:2018-02-05 18:15:46

标签: c vector cross-product

我正在尝试编写代码来解决两个3D矢量的交叉积。我需要能够输入向量的X,Y,Z值,然后输出两个向量的叉积。当我运行程序时,它返回零值。感谢任何帮助!

   #include <stdio.h>
   #include <stdlib.h>

   int a,b,c;
   int x,y,z;
   int A[3],B[3];
   int sum = 0;
   int i;

  void vector_product(int A[i], int B[i])
 {
  sum += ((b*z)-(c*y))+((a*z)-(c*x))+((a*y)-(b*x));
 }

int main(void)
{

  for(i=0;i<3;i++)
 {
    scanf("%d",&A[i]);
 }
 for(i=0;i<3;i++)
  {
    scanf("%d",&B[i]);
  }

    int A[3] = {a, b, c};
    int B[3] = {x, y, z};
    vector_product(A,B);
    printf("%d\n",sum);

    return sum;
}

1 个答案:

答案 0 :(得分:0)

看起来您正试图让abc引用A[0]A[1]A[2] ,但事实并非如此。

int A[3] = {a, b, c};
int B[3] = {x, y, z};

隐藏全局变量AB,并使用{0,0,0}初始化这两个向量(因为永远不会设置a,b,c,x,y或z)。然后在vector_product函数中,您使用abc等,并且不要使用您传入的两个数组。我建议您做什么一些程序员Dude说并找到/重读了一本关于C的书,特别是关于数组的部分。