c++求两向量求夹角代码
时间: 2023-11-04 14:16:21 浏览: 373
以下是求两个向量夹角的 C 代码:
```c
#include <stdio.h>
#include <math.h>
#define PI 3.14159265
// 计算两个向量的点积
double dot_product(double x1, double y1, double x2, double y2) {
return x1 * x2 + y1 * y2;
}
// 计算向量的模长
double norm(double x, double y) {
return sqrt(x * x + y * y);
}
// 计算两个向量的夹角(单位为弧度)
double angle(double x1, double y1, double x2, double y2) {
double dot = dot_product(x1, y1, x2, y2);
double norm1 = norm(x1, y1);
double norm2 = norm(x2, y2);
double cos_theta = dot / (norm1 * norm2);
return acos(cos_theta);
}
int main() {
double x1, y1, x2, y2;
printf("请输入第一个向量的 x 分量和 y 分量:");
scanf("%lf %lf", &x1, &y1);
printf("请输入第二个向量的 x 分量和 y 分量:");
scanf("%lf %lf", &x2, &y2);
double theta = angle(x1, y1, x2, y2);
printf("两个向量的夹角为 %.2f°\n", theta * 180.0 / PI);
return 0;
}
```
注:本程序中,`dot_product` 函数用来计算两个向量的点积,`norm` 函数用来计算向量的模长,`angle` 函数用来计算两个向量的夹角(单位为弧度)。最后,将夹角转换为度数并输出。
阅读全文
相关推荐


















