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

简介: 2970: 利用参数宏进行角度与弧度转换Description 定义参数宏AngleToRadian(degree,minute,second),将度(degree)、分(minute)、秒(second)转换为弧度。(#define PI 3.14159)#include <stdio.h>#define PI 3.14159/*******

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",&degree,&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",&degree,&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",&degree,&minute,&second);
    printf("%f",AngleToRadian(degree,minute,second)); /*参数宏会被替换为定义的表达式,算出结果后输出*/
    return 0;
}
目录
相关文章
|
18天前
|
C语言
【C语言】全局搜索变量却找不到定义?原来是因为宏!
使用条件编译和 `extern` 来管理全局变量的定义和声明是一种有效的技术,但应谨慎使用。在可能的情况下,应该优先考虑使用局部变量、函数参数和返回值、静态变量或者更高级的封装技术(如结构体和类)来减少全局变量的使用。
31 5
|
1月前
|
C语言 Windows
C语言课设项目之2048游戏源码
C语言课设项目之2048游戏源码,可作为课程设计项目参考,代码有详细的注释,另外编译可运行文件也已经打包,windows电脑双击即可运行效果
32 1
|
4月前
|
编译器 程序员 C语言
C语言 宏
C语言 宏
43 5
|
5月前
|
Linux C语言
C语言宏IS_REACHABLE
C语言宏IS_REACHABLE
46 1
|
6月前
|
C语言
C语言实战项目——学生试卷分数统计
C语言实战项目——学生试卷分数统计
|
6月前
|
算法 C语言
C语言——oj刷题——回文字符串
C语言——oj刷题——回文字符串
35 2
|
6月前
|
算法 C语言
C语言——oj刷题——字符串左旋和轮转数组
C语言——oj刷题——字符串左旋和轮转数组
45 1
|
6月前
|
安全 编译器 C语言
【C语言进阶篇】offsetof宏的介绍 及其实现
【C语言进阶篇】offsetof宏的介绍 及其实现
|
6月前
|
编译器 程序员 C语言
【C语言进阶篇】assert宏 使用详解
【C语言进阶篇】assert宏 使用详解
|
6月前
|
C语言
C语言学习记录——鹏哥扫雷项目实现及递归展开、记录雷坐标
C语言学习记录——鹏哥扫雷项目实现及递归展开、记录雷坐标
75 0