C-利用参数宏进行角度与弧度转换

Description

定义参数宏AngleToRadian(degree,minute,second),将度(degree)、分(minute)、秒(second)转换为弧度。(#define PI 3.14159)

#include 
#define PI 3.14159

/**********/

在此补充缺少的代码

/**********/

int main()
{
    double degree,minute,second;
    scanf("%lf %lf %lf",°ree,&minute,&second);
    printf("%f",AngleToRadian(degree,minute,second)); /*参数宏会被替换为定义的表达式,算出结果后输出*/
    return 0;
}

Input

度,分,秒

Outputt

转换后的弧度

Sample Input

180 0 0

Sample Outputt

3.141590

解法1:带参宏定义

#include 
#define PI 3.14159

/**********/
#define PI 3.14159
#define AngleToRadian(d,m,s) ((d) + ((m)+(s)/60)/60)/180*PI
/**********/

int main()
{
    double degree,minute,second;
    scanf("%lf %lf %lf",°ree,&minute,&second);
    printf("%f",AngleToRadian(degree,minute,second)); /*参数宏会被替换为定义的表达式,算出结果后输出*/
    return 0;
}

注:上面宏定义中的括号,并非可有可无

解法2:

实际上,对本题而言,完全可以使用自定义函数解决(只是不符合出题者要求而已)

#include 
#define PI 3.14159

/***提交下面的代码*******/

#define PI 3.14159
double AngleToRadian(double degree,double minute,double second)
{
    minute+=second/60;
    degree+=minute/60;
    return degree/180*PI;
}

/****提交到此处******/

int main()
{
    double degree,minute,second;
    scanf("%lf %lf %lf",°ree,&minute,&second);
    printf("%f",AngleToRadian(degree,minute,second)); /*参数宏会被替换为定义的表达式,算出结果后输出*/
    return 0;
}

你可能感兴趣的:(C-利用参数宏进行角度与弧度转换)