1. 程式人生 > >hdu 2080 夾角有多大(弧度制)

hdu 2080 夾角有多大(弧度制)

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;    
            cosx
=(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; }
View Code

 

標頭檔案:#include <math.h>
acos() 函式返回一個以弧度表示的反餘弦值,其原型為:
    double acos (double x);

【引數】x 為餘弦值,範圍為 -1 到 1 之間,超出此範圍將會導致錯誤,並設定 errno 的值為 EDOM.

【返回值】返回 0 至 π 之間的計算結果,單位為弧度,在函式庫中角度均以弧度來表示。

弧度與角度的關係為:
弧度 = 180 / π 角度
角度 = π / 180 弧度

  1. #include<stdio.h>
  2. #include<math.h>
  3. int main(void)
  4. {
  5. double angl,result;
  6. angl = 1;
  7. result =acos(cos(angl));/*求反餘弦值*/
  8. printf("acos(%lf) is %lf\n",cos(angl),result);/*格式化輸出*/
  9. angl = 3.1415926;
  10. result = acos(cos(angl));/*求反餘弦值*/
  11. printf("acos(%lf) is %lf\n",cos(angl),result);/*格式化輸出*/
  12. return 0;
  13. }

執行結果:
acos(0.540302)  is  1.000000
acos (-1.000000)  is  3.141593