【c语言】(函数)利用麦克劳林公式求sinx,cosx,tanx
题目:
求tanx,已知麦克劳林公式
思路分析:
先设定两个函数,一个pwr算乘方或者用#include<math.h>的pow()来计算,另一个fac算阶乘
利用循环,将sinx和cosx依据麦克劳林公式代入上述两个函数中即可求出
tanx = sinx/cosx
注意:x的0次方为1,0和1的阶乘为1
代码实现:
#include<stdio.h>
float pwr(float x, int n)
{int i = 0;float powers = 1;
// printf("n = %d\n",n);if(n == 0){// printf("yes\n");return 1;}for(i = 1; i <= n; i++){powers = powers * x;}
// printf("power = %f\n",powers);return powers;
}
int fac(int n)
{int i = 0;float pdt = 1;if(n == 0 || n == 1){// printf("yes\n");return 1; }for(i = 2; i <= n; i++){pdt = pdt * i;}
// printf("pdt = %f\n",pdt); return pdt;
}
int main()
{int k = 0, i = 0, j = 0, cons = 1; float x = 0, s = 0, c = 0, sin = 0, cos = 0, tan = 0, y = 0; //用y将弧度制转换为角度制 const float pi = 3.1415926;printf("Input the angle:"); scanf("%f",&y);x = y*pi/180;for(k = 1; k <= 11; k++){i = 2 * k - 1;j = 2 * k - 2;s = cons*pwr(x,i)/fac(i);c = cons*pwr(x,j)/fac(j);cons = -1*cons;
// printf("cons = %d\n",cons);sin = sin + s;cos = cos + c;}tan = sin/cos;printf("sin(%.0f) = %f cos(%.0f) = %f tan(%.0f) = %f",y,sin,y,cos,y,tan);return 0;
}
运行结果:
如要求tan45°
附加:
代码中注释掉的printf是用在debug程序的时候
【c语言】(函数)利用麦克劳林公式求sinx,cosx,tanx相关推荐
- Day1:C语言循环控制结构例题之求sinx近似值
利用sinx,计算sinx的值,直到最后一项的绝对值小于时为止. 首先,分析一下这个题.题目要求得出sinx的近似值,如果对C语言的数学函数有所了解的话,第一时间想到的应该是C语言中已经有了求sinx ...
- C语言编程--根据麦克劳林公式计算任意角的正弦余弦
C语言编程–根据麦克劳林公式计算任意角的正弦余弦 正弦余弦 麦克劳林公式 问题 输入格式 x ϵ 注:x 为角(单位:弧度),ϵ 为计算精度. 输出格式 y 正弦输入样例 注:y 为 x 的正弦(余弦 ...
- 【离散数学】Java语言实现利用真值表法求主析取范式和主合取范式
C++版本的看这个链接: [离散数学]C++语言实现利用真值表法求主析取范式和主合取范式_zhtstar的博客-CSDN博客https://blog.csdn.net/weixin_56319483/ ...
- 【离散数学】C++语言实现利用真值表法求主析取范式和主合取范式
Java版本的如下链接所示: Java语言实现利用真值表法求主析取范式和主合取范式_zhtstar的博客-CSDN博客https://blog.csdn.net/weixin_56319483/art ...
- 写一个用矩阵法求定积分的通用函数,分别求sinx,cosx,exp(x)的定积分
/*写一个用矩阵法求定积分的通用函数,分别求sinx,cosx,exp(x)的定积分*/#include <stdio.h> #include <math.h> #define ...
- C++代码实现atanx,atan2x,acosx,asinx,sinx,cosx,tanx三角函数、开方函数sqrtND()
C++代码实现atanx,atan2x,acosx,asinx,sinx,cosx,tanx三角函数.开方函数sqrtND() 一.开平方函数,牛顿迭代法sqrtND() double sqrtND( ...
- 【C语言】 利用筛选法求100以内的素数
算法思路: 原理很简单,就是当i是质(素)数的时候,i的所有的倍数必然是合数.如果i已经被判断不是质数了,那么再找到i后面的质数来把这个质数的倍数筛掉. 代码如下: //C语言 筛选法求100以内的素 ...
- C语言用矩形法求定积分的通用函数,分别求 sinx, cosx,e^x
要求: 写一个用矩形法求定积分的通用函数,分别求:sin(x),cos(x),e^x . 分析: 矩形法,学过高等数学就知道化曲为直的思想.将定积分化为多个函数连续的和.基本思想是将区间[a,b]化成 ...
- 什么叫c语言函数递归,什么是递归-C语言函数递归-嗨客网
C语言函数递归教程 函数递归就是一个 C语言函数递归条件 执行一个函数时,就创建一个新的受保护的独立空间(新函数栈). 函数的局部 递归必须向退出递归的条件逼近,否则就是无限递归了. 当一个函数执行完 ...
- C语言——用多项式来近似表示正弦函数sinx
在数学上对一些复杂的函数,常用多项式来近似表示函数.例如正弦函数sinx是用如下多项式来近似表达的: 在实际计算时当多项式尾项(−1)n−1(2n−1)!x2n−1的绝对值小于一个预定值ε(例如10 ...
最新文章
- ADOQuery代替ClientDataSet做3-Tier系统
- java com dll_通过COM组件方式实现java调用C#写的DLL文件
- 数据结构--双链表的创建和操作
- 浏览器中的JavaScript
- C++知识点总结(三)
- 桌面云的四大协议解析
- 笔记本电脑风扇声音大怎么办_车子才开几年发动机就发出哒哒哒的声音怎么办?不一定是大问题_搜狐汽车...
- [Python] Python 之 __new__() 方法与实例化
- Excel永远不会消亡!
- H5调起手机端的摄像头
- 认知系列1:认知是什么
- [C++]H106OJ-第二周练习总结
- 【转】C++ std::tr1::shared_ptr使用
- 毕业设计-基于微信小程序的校园一卡通应用系统
- oracle 行转列后列名,Oracle 多行转多列,列值转为列名
- 昆石网络 VOS3000虚拟运营支撑系统任意文件读取漏洞
- GPS授时系统(北斗授时设备)应用及案例
- 51单片机利用8266获取网络时间
- html中去除浮漂有什么作用,各种浮漂的选择及作用
- 苹果输入法自动合并两个短横线/减号的解决方法
热门文章
- 温度转换程序python代码_python温度转换华氏温度实现代码
- 转载(工信部):张欣 辽宁奇辉电子系统工程有限公司
- 阿里P9:聊聊大厂晋升的“潜规则”
- win10系统下,屏幕录制专家如何录制耳机里面的声音
- appbase_构建一个Chrome扩展程序,以使用Appbase进行实时价格跟踪
- 乌鲁木齐云计算中心将于5月正式竣工并投入使用
- NLP中的全局注意力机制(Global Attention)
- web2.0创业时代将终结
- android监听软键盘弹出弹回事件
- pscc2018安装服务器无响应,一招解决PSCC2018无法安装扩展插件