题目:

求tanx,已知麦克劳林公式

思路分析:

  1. 先设定两个函数,一个pwr算乘方或者用#include<math.h>的pow()来计算,另一个fac算阶乘

  2. 利用循环,将sinx和cosx依据麦克劳林公式代入上述两个函数中即可求出

  3. 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相关推荐

  1. Day1:C语言循环控制结构例题之求sinx近似值

    利用sinx,计算sinx的值,直到最后一项的绝对值小于时为止. 首先,分析一下这个题.题目要求得出sinx的近似值,如果对C语言的数学函数有所了解的话,第一时间想到的应该是C语言中已经有了求sinx ...

  2. C语言编程--根据麦克劳林公式计算任意角的正弦余弦

    C语言编程–根据麦克劳林公式计算任意角的正弦余弦 正弦余弦 麦克劳林公式 问题 输入格式 x ϵ 注:x 为角(单位:弧度),ϵ 为计算精度. 输出格式 y 正弦输入样例 注:y 为 x 的正弦(余弦 ...

  3. 【离散数学】Java语言实现利用真值表法求主析取范式和主合取范式

    C++版本的看这个链接: [离散数学]C++语言实现利用真值表法求主析取范式和主合取范式_zhtstar的博客-CSDN博客https://blog.csdn.net/weixin_56319483/ ...

  4. 【离散数学】C++语言实现利用真值表法求主析取范式和主合取范式

    Java版本的如下链接所示: Java语言实现利用真值表法求主析取范式和主合取范式_zhtstar的博客-CSDN博客https://blog.csdn.net/weixin_56319483/art ...

  5. 写一个用矩阵法求定积分的通用函数,分别求sinx,cosx,exp(x)的定积分

    /*写一个用矩阵法求定积分的通用函数,分别求sinx,cosx,exp(x)的定积分*/#include <stdio.h> #include <math.h> #define ...

  6. C++代码实现atanx,atan2x,acosx,asinx,sinx,cosx,tanx三角函数、开方函数sqrtND()

    C++代码实现atanx,atan2x,acosx,asinx,sinx,cosx,tanx三角函数.开方函数sqrtND() 一.开平方函数,牛顿迭代法sqrtND() double sqrtND( ...

  7. 【C语言】 利用筛选法求100以内的素数

    算法思路: 原理很简单,就是当i是质(素)数的时候,i的所有的倍数必然是合数.如果i已经被判断不是质数了,那么再找到i后面的质数来把这个质数的倍数筛掉. 代码如下: //C语言 筛选法求100以内的素 ...

  8. C语言用矩形法求定积分的通用函数,分别求 sinx, cosx,e^x

    要求: 写一个用矩形法求定积分的通用函数,分别求:sin(x),cos(x),e^x . 分析: 矩形法,学过高等数学就知道化曲为直的思想.将定积分化为多个函数连续的和.基本思想是将区间[a,b]化成 ...

  9. 什么叫c语言函数递归,什么是递归-C语言函数递归-嗨客网

    C语言函数递归教程 函数递归就是一个 C语言函数递归条件 执行一个函数时,就创建一个新的受保护的独立空间(新函数栈). 函数的局部 递归必须向退出递归的条件逼近,否则就是无限递归了. 当一个函数执行完 ...

  10. C语言——用多项式来近似表示正弦函数sinx

    在数学上对一些复杂的函数,常用多项式来近似表示函数.例如正弦函数sinx是用如下多项式来近似表达的: 在实际计算时当多项式尾项(−1)n−1(2n−1)!x2n−1​的绝对值小于一个预定值ε(例如10 ...

最新文章

  1. ADOQuery代替ClientDataSet做3-Tier系统
  2. java com dll_通过COM组件方式实现java调用C#写的DLL文件
  3. 数据结构--双链表的创建和操作
  4. 浏览器中的JavaScript
  5. C++知识点总结(三)
  6. 桌面云的四大协议解析
  7. 笔记本电脑风扇声音大怎么办_车子才开几年发动机就发出哒哒哒的声音怎么办?不一定是大问题_搜狐汽车...
  8. [Python] Python 之 __new__() 方法与实例化
  9. Excel永远不会消亡!
  10. H5调起手机端的摄像头
  11. 认知系列1:认知是什么
  12. [C++]H106OJ-第二周练习总结
  13. 【转】C++ std::tr1::shared_ptr使用
  14. 毕业设计-基于微信小程序的校园一卡通应用系统
  15. oracle 行转列后列名,Oracle 多行转多列,列值转为列名
  16. 昆石网络 VOS3000虚拟运营支撑系统任意文件读取漏洞
  17. GPS授时系统(北斗授时设备)应用及案例
  18. 51单片机利用8266获取网络时间
  19. html中去除浮漂有什么作用,各种浮漂的选择及作用
  20. 苹果输入法自动合并两个短横线/减号的解决方法

热门文章

  1. 温度转换程序python代码_python温度转换华氏温度实现代码
  2. 转载(工信部):张欣 辽宁奇辉电子系统工程有限公司
  3. 阿里P9:聊聊大厂晋升的“潜规则”
  4. win10系统下,屏幕录制专家如何录制耳机里面的声音
  5. appbase_构建一个Chrome扩展程序,以使用Appbase进行实时价格跟踪
  6. 乌鲁木齐云计算中心将于5月正式竣工并投入使用
  7. NLP中的全局注意力机制(Global Attention)
  8. web2.0创业时代将终结
  9. android监听软键盘弹出弹回事件
  10. pscc2018安装服务器无响应,一招解决PSCC2018无法安装扩展插件