c - 用 C 语言打印 0 到 90 度的 sin 值表
问题描述
以下是代码:
#include <stdio.h>
//to use 'sin()' function
#include <math.h>
int main()
{
double i=0;
//printing the values of sine table
printf("SINE TABLE :\n\n");
while(i<=90){
printf("sin(%.0lf)=%lf\n",i,sin(i));
i+=15;
}
return 0;
}
我得到这个输出:
SINE TABLE :
sin(0)=0.000000
sin(15)=0.650288
sin(30)=-0.988032
sin(45)=0.850904
sin(60)=-0.304811
sin(75)=-0.387782
sin(90)=0.893997
但是当我用标准表检查时,这个表是错误的。我想要这个答案:
SINE TABLE :
sin(0)=0.000000
sin(15)=0.258819
sin(30)=0.500000
sin(45)=0.707107
sin(60)=0.866025
sin(75)=0.965926
sin(90)=1.000000
我应该做些什么改变?
解决方案
C 的三角函数与弧度一起使用——您使用的是度数。
将你的弧度转换为度数,你应该得到你想要的结果:
i * M_PI / 180.0
如果您在M_PI
未定义的系统上运行math.h
- 请自行定义:
#define M_PI 3.14159265358979323846
推荐阅读
- vue.js - 在 Vue 中使用图标切换 b 侧边栏
- angular - Angular FHIR Stackblitz 授权窗口拒绝连接
- docker - 如何为新的 Docker Amazon Linux 2 平台将 Dockerrun.json v2 转换为 Dockerrun.json v3?
- flutter - Flutter Web:如何检测 AppLifeCycleState 变化
- java - 使用 python 应用程序(pyinstaller)打包 Java 运行时环境(JRE) Ubuntu
- vb.net - 如何检查整数是否在一个数字范围内,其中该范围的步进不是一个
- python - 如何在 HTML 中查找标签数量
- php - 如何使用 Github Actions 运行 Behat 测试?
- amazon-web-services - 预签名链接在 Expires=172000 到期,但在不到 24 小时内到期?
- node.js - Firestore 管理员事务本地化描述