爲什麼我得到0的輸出?我認爲我的角度轉換和我的等式可能存在問題,但是擺弄它並移動一些東西總會給我相同的結果。爲什麼我得到0的輸出0
我的目標是寫一個C代碼,將計算角度θ爲任何兩個給定的矢量u和v。
#include <stdio.h>
#include <math.h>
int main()
{
double ux, uy;
double vx, vy;
double inner_product(double vx, double vy, double ux, double uy);
double v;
double u;
double i;
double x;
double k;
double pi;
double angle;
double p;
ux = 1.0;
uy = 1.0;
vx = 1.0;
vy = 1.0;
printf ("input value for ux\n", ux);
scanf_s ("%f", &ux);
printf ("input value for uy\n", uy);
scanf_s ("%f", &uy);
printf ("input value for vx\n", vx);
scanf_s ("%f", &vx);
printf("input value for vy\n", vy);
scanf_s ("%f", &vy);
u = ux * vx;
v = uy * vy;
i = u * v;
x = u * u;
k = v * v;
pi = acos(-1.0);
p = acos(i/(sqrt(x * k)));
angle = ((p * 180)/pi); //converting from radians to degrees
printf("%f", angle);
return;
}
一個很好的開始將啓用編譯器警告,並消除它們。看看前幾個'printf'調用。您傳遞的是未使用的值。爲什麼?刪除它們。 –
@TomKarzes通過刪除ux = ...我得到未初始化的錯誤,我將如何能夠消除這些錯誤? – DanielRossi
@DanielRossi 1.初始化要讀取的變量以防萬一讀數失敗或檢查讀函數的返回值以檢查讀數是否成功。 2.刪除'printf()'*的未使用*參數。請注意,'printf()'上的多餘參數只是被評估和忽略,所以它們不會有害。 – MikeCAT