C 中的矢量叉积

Vector Cross product in C

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

   #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;
}

您似乎在尝试让 abc 引用 A[0]A[1] 和 [=16] =],但事实并非如此。

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 等,不要使用你传入的两个数组。我建议你做什么一些程序员老兄说 finding/re-reading 一本关于 C 的书,特别是关于数组的部分。