2970: 利用参数宏进行角度与弧度转换
Description
定义参数宏AngleToRadian(degree,minute,second)
,将度(degree)、分(minute)、秒(second)转换为弧度。(#define PI 3.14159
)
#include <stdio.h>
#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 <stdio.h>
#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 <stdio.h>
#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;
}