【发布时间】:2018-07-15 16:24:55
【问题描述】:
我正在尝试编写代码来解决两个 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;
}
【问题讨论】:
-
在您阅读输入后直接会发生什么?或许您应该找一些好的初学者书籍并阅读有关 scope 和变量阴影的内容。
-
是的,那个程序员老兄说的。看起来您需要学习 C 的一些基础知识。您的范围界定肯定是一个问题,您的一些语法也是如此。 (提示:
int A[3] = {a, b, c};没有做你认为的事情;范围只是那行代码问题的一部分)
标签: c vector cross-product