hdu 2080 夾角有多大(弧度制)
阿新 • • 發佈:2019-01-13
AC程式碼:
#include<iostream> #include<math.h> #include<algorithm> using namespace std; int main() { int t; double x1,x2,y1,y2,cosx,theta; while(cin>>t) { while(t--) { cin>>x1>>y1>>x2>>y2; cosxView Code=(x1*x2+y1*y2)*1.0/(sqrt(x1*x1+y1*y1)*sqrt(x2*x2+y2*y2)); while(cosx<-1)cosx+=1; while(cosx>1)cosx-=1; theta=acos(cosx)/acos(-1)*180;//算出來是弧度制,需要乘180/3.14; printf("%.2lf\n",theta); } } return 0; }
標頭檔案:#include <math.h>
acos() 函式返回一個以弧度表示的反餘弦值,其原型為:
double acos (double x);
【引數】x 為餘弦值,範圍為 -1 到 1 之間,超出此範圍將會導致錯誤,並設定 errno 的值為 EDOM.
【返回值】返回 0 至 π 之間的計算結果,單位為弧度,在函式庫中角度均以弧度來表示。
弧度與角度的關係為:
弧度 = 180 / π 角度
角度 = π / 180 弧度
- #include<stdio.h>
- #include<math.h>
- int main(void)
- {
- double angl,result;
- angl = 1;
- result =acos(cos(angl));/*求反餘弦值*/
- printf("acos(%lf) is %lf\n",cos(angl),result);/*格式化輸出*/
- angl = 3.1415926;
- result = acos(cos(angl));/*求反餘弦值*/
- printf("acos(%lf) is %lf\n",cos(angl),result);/*格式化輸出*/
- return 0;
- }
執行結果:
acos(0.540302) is 1.000000
acos (-1.000000) is 3.141593