C语言OJ项目参考(2970)利用参数宏进行角度与弧度转换

    xiaoxiao2026-04-09  6

    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; } 相关资源:python入门教程(PDF版)
    最新回复(0)