程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> C++ >> C++入門知識 >> hdu2080夾角有多大II

hdu2080夾角有多大II

編輯:C++入門知識

就是一道數學題目,然後調用了反三角函數,考慮四個坐標系的情況,考慮清楚即可


[cpp] 
#include "stdio.h"  
#include "string.h"  
#include "stdlib.h"  
#include "math.h"  
#include "algorithm"  
#include "iostream"  
 
using namespace std; 
#define PI 3.1415926  
int main() 

    int n ;  
    double x1 , y1 , x2 , y2 , tempa ,tempb , temp;  
    scanf( "%d" , &n ); 
    { 
        while( n-- ) 
        { 
            scanf( "%lf%lf%lf%lf" ,&x1 , &y1 , &x2 , &y2 ) ; 
        //    cout << x1 << y1 << x2 << y2 ;   
            if( x1 * x2 > 0 && y1 * y2 >= 0 ) 
            { 
                tempa = atan( y1 / x1 ) ; 
                tempb = atan( y2 / x2 ) ; 
                temp = fabs( tempa - tempb ) ; 
                //cout << tempa << endl << tempb << endl << temp <<endl ;  
            } 
            else 
                if( x1 * x2 > 0 && y1 * y2 <= 0 ) 
                { 
                    y1 = fabs( y1 ) ; 
                    y2 = fabs( y2 ) ; 
                    tempa = atan( y1 / x1 ); 
                    tempb = atan( y2 / x2 ) ; 
                    temp = tempa + tempb ; 
                } 
                else 
                    if( x1 * x2 < 0 && y1 * y2 >= 0 ) 
                    { 
                        x1 = fabs( x1 ) ; 
                        x2 = fabs( x2 ) ;   
                        tempa = atan( y1 / x1 ) ; 
                        tempb = atan( y2 / x2 ) ; 
                        temp = PI - fabs( tempa - tempb );  
                    } 
                    else  
                        if( x1 * x2 < 0 && y1 * y2 <= 0 ) 
                        { 
                            x1 = fabs( x1 ) ; 
                            x2 = fabs( x2 ) ; 
                             y1 = fabs( y1 ) ; 
                             y2 = fabs( y2 ) ; 
                             tempa = atan( y1 / x1 ) ; 
                             tempb = atan( y2 / x2 ) ; 
                             temp = PI + fabs( tempa - tempb ) ; 
                        } 
            printf( "%.2lf\n" , temp * 180 /PI ) ; 
        } 
    }  
    return 0; 

#include "stdio.h"
#include "string.h"
#include "stdlib.h"
#include "math.h"
#include "algorithm"
#include "iostream"

using namespace std;
#define PI 3.1415926
int main()
{
    int n ;
    double x1 , y1 , x2 , y2 , tempa ,tempb , temp;
    scanf( "%d" , &n );
    {
        while( n-- )
        {
            scanf( "%lf%lf%lf%lf" ,&x1 , &y1 , &x2 , &y2 ) ;
        //    cout << x1 << y1 << x2 << y2 ;
            if( x1 * x2 > 0 && y1 * y2 >= 0 )
            {
                tempa = atan( y1 / x1 ) ;
                tempb = atan( y2 / x2 ) ;
                temp = fabs( tempa - tempb ) ;
                //cout << tempa << endl << tempb << endl << temp <<endl ;
            }
            else
                if( x1 * x2 > 0 && y1 * y2 <= 0 )
                {
                    y1 = fabs( y1 ) ;
                    y2 = fabs( y2 ) ;
                    tempa = atan( y1 / x1 );
                    tempb = atan( y2 / x2 ) ;
                    temp = tempa + tempb ;
                }
                else
                    if( x1 * x2 < 0 && y1 * y2 >= 0 )
                    {
                        x1 = fabs( x1 ) ;
                        x2 = fabs( x2 ) ; 
                        tempa = atan( y1 / x1 ) ;
                        tempb = atan( y2 / x2 ) ;
                        temp = PI - fabs( tempa - tempb );
                    }
                    else
                        if( x1 * x2 < 0 && y1 * y2 <= 0 )
                        {
                            x1 = fabs( x1 ) ;
                            x2 = fabs( x2 ) ;
                             y1 = fabs( y1 ) ;
                             y2 = fabs( y2 ) ;
                             tempa = atan( y1 / x1 ) ;
                             tempb = atan( y2 / x2 ) ;
                             temp = PI + fabs( tempa - tempb ) ;
                        }
            printf( "%.2lf\n" , temp * 180 /PI ) ;
        }
    }
    return 0;
}

 

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved