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;
}
您似乎在尝试让 a
、b
和 c
引用 A[0]
、A[1]
和 [=16] =],但事实并非如此。
行
int A[3] = {a, b, c};
int B[3] = {x, y, z};
隐藏全局变量 A
和 B
,并用 {0,0,0}
初始化这两个向量(因为 a、b、c、x、y 或 z 从未设置) .然后在你的 vector_product
函数中,你使用 a
、b
、c
等,不要使用你传入的两个数组。我建议你做什么一些程序员老兄说 finding/re-reading 一本关于 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;
}
您似乎在尝试让 a
、b
和 c
引用 A[0]
、A[1]
和 [=16] =],但事实并非如此。
行
int A[3] = {a, b, c};
int B[3] = {x, y, z};
隐藏全局变量 A
和 B
,并用 {0,0,0}
初始化这两个向量(因为 a、b、c、x、y 或 z 从未设置) .然后在你的 vector_product
函数中,你使用 a
、b
、c
等,不要使用你传入的两个数组。我建议你做什么一些程序员老兄说 finding/re-reading 一本关于 C 的书,特别是关于数组的部分。