0

我正在尝试编写代码来解决两个 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;
}
4

1 回答 1

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函数中,你使用a, b,c等,不要使用你传入的两个数组。我建议按照 Some Programmer Dude 所说的去做,并找到/重新阅读一本关于 C 的书,特别是关于数组的部分.

于 2018-02-05T18:29:02.503 回答