【c语言】(函数)利用麦克劳林公式求sinx,cosx,tanx_已知cos的麦克劳林 求sec的麦克劳林-程序员宅基地

技术标签: 麦克劳林  # C/C++  c  三角函数  函数  循环  =======其他=======  

题目:

求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程序的时候

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/Halo_7777777/article/details/84349451

智能推荐

ssm校园快递管理系统-计算机毕设 附源码 50757_基于ssm校园快递领取系统源码-程序员宅基地

文章浏览阅读116次。注册用户管理模块该模块是为所有用户登录设计的,注册用户登录后只能进行自己的普通功能操作(如个人信息修改),管理员登录后有不同的权限,管理员能对整个系统的数据进行管理,主要是用户的登录权限以及用户登录后在系统里的操作权限。寄件信息模块注册用户提交寄件信息后,注册用户和管理员都能在后台查看寄件信息,管理员可以对寄件信息进行审核。快递记录模块管理员来录入快递记录,点击快递录入按钮,依次填写要录入的快递数据,点击提交按钮,将数据提交至数据库,然后刷新快递记录页面,每条数据右边有删除和编辑按钮,来完成相应的_基于ssm校园快递领取系统源码

Automatically Discovering and Learning New Visual Categories with Ranking Statistics (ICLR 2020)-程序员宅基地

文章浏览阅读112次。我们解决了在给定其他类的带标签示例的图像集合中发现新类的问题。这种设置类似于半监督学习,但明显更难,因为新类没有标记的示例。因此,挑战在于利用标记图像中包含的信息来学习通用的聚类模型,并使用后者来识别未标记数据中的新类。在这项工作中,我们通过结合三个想法来解决这个问题:(1)我们认为,使用标记数据的引导图像表示的常见方法只会引入一种不必要的偏差,而这可以通过使用自我监督学习从有标记和无标记数据的联合上从头开始训练表示来避免;(2)利用秩统计量将模型对带标签类的认识转移到对无标签图像的聚类问题上;_automatically discovering and learning new visual categories with ranking st

peerconnection_client demo总流程(一)_peerconnection_client 简化-程序员宅基地

文章浏览阅读1.3k次。总流程如下:_peerconnection_client 简化

关于IPSEC的简单总结_思科ipsec的对称加密和非对称加密说明-程序员宅基地

文章浏览阅读1.6k次,点赞2次,收藏13次。密码学基础安全三要素:完整性、私密性、不可否认性(合法性)一、完整性:数据没有遭到损坏,或者篡改通过完整性算法进行完整性校验:哈希算法----不可逆算法MD5 SHA例如本地:MD5(原始数据+秘钥)=KEY1原始数据+KEY1 发送到邻居处邻居:MD5(原始信息+本地秘钥)=KEY2若KEY1=KEY2,则表示认证成功。二、私密性:数据通过转换,形成另一种格式(就是转换为让其他..._思科ipsec的对称加密和非对称加密说明

前端——HTML基础_html空心圆-程序员宅基地

文章浏览阅读6k次。目录html基本标签列表标签无序列表有序列表超链接标签a标签假链接表格标签基本表格单元格合并注意事项表单标签【重点】基本介绍form的常见子标签input:输入类型select :选择菜单textarea:文本域通用属性设置默认值其它属性媒体标签html基本标签标题标签<hn></hn> n取值1~6段落标签 段落之间自动进行换行<p></p>粗体标签<b></b>斜体标签<i></i&_html空心圆

中职计算机教学现状,中职计算机专业教学现状及改革对策-程序员宅基地

文章浏览阅读123次。资料简介中职计算机专业教学现状及改革对策摘要:学好计算机专业对于中职学生来说具有重要的意义,不仅增加了自己的技能,还为就业提供了保障。计算机专业教学培养的是中职学生的实际操作能力和综合素质,是符合社会发展需要的。但是,现在的中职计算机专业教学还存在着一些问题,严重影响了教学质量。本文将通过对中职计算机专业教学现状的分析,提出相应的改革对策。关键词:中等职业学校;计算机专业;改革对策随着互联网技术..._中等职业教育计算机网络教学现状

随便推点

arraybuffer操作_JavaScript 之 ArrayBuffer-程序员宅基地

文章浏览阅读299次。JS里的ArrayBuffer还记得某个晚上在做 canvas 像素级操作,发现存储像素的数据格式并不是Array类型,而是ArrayBuffer,心想这是什么鬼?后来查了一些资料,发现自己这半年来的JS是白学了,竟然才知道还有这么个东东。首先,这个 ArrayBuffer 类型化数组,类型化数组是JavaScript操作二进制数据的一个接口。最初为了满足JavaScript与显卡之间大量的、实时..._arraybuffer 写入

前端学习 -- 什么是api_前端api是什么意思-程序员宅基地

文章浏览阅读3.1k次,点赞6次,收藏7次。api是什么API(Application Programming Interface,应用程序编程接口)是一些预先定义的函数,目的是提供应用程序与开发人员基于某软件或硬件得以访问一组例程的能力,而又无需访问源码,或理解内部工作机制的细节。——百度百科说得通俗易懂一些,就是别人写好的代码,或者编译好的程序,拿去使用,就叫做API。你使用了别人代码(或者程序)中的某个函数、类、对象,就叫做使用了..._前端api是什么意思

three.js顶点概念知识点_three.js float32array-程序员宅基地

文章浏览阅读551次。three.js-顶点点let geometry = new THREE.BufferGeometry();let vertices = new Float32Array([ 0, 0, 0, //顶点1坐标 50, 0, 0, //顶点2坐标 0, 100, 0, //顶点3坐标 0, 0, 10, //顶点4坐标 0, 0, 100, //顶点5坐标 50, 0, 10, //顶点6坐标]);let attribue = new THREE.B_three.js float32array

论文研读 —— 10. PCA-Kalman: device-free indoor human behavior detection with commodity Wi-Fi (3/3)-程序员宅基地

文章浏览阅读275次。在这篇论文中,我们提出了一种使用无处不在的Wi-Fi检测室内活动的方法,称为PCA-Kalman,并从商用现成的(COTS) Wi-Fi设备中提取CSI信号。进一步地,实验结果显示,在三个不同的测试区域,这种方法的检测率为95%。从图13可以看出,随着窗口大小的增加,三个系统的检测率都在增加,但当窗口大小超过某个设定的阈值时,人员的不同行为状态会导致CSI的时间差异。我们还注意到,除了在所有区域的区域3测试外,PCA取得了出色的结果,因为区域3距离发射机和接收机很远,导致信号中的人员变化不太明显。

二叉树的先序遍历,中序遍历,后序遍历的非递归C语言实现_如何实现二叉树的先序遍历、中序遍历和后序遍历的非递归算法c语言-程序员宅基地

文章浏览阅读1.4w次,点赞19次,收藏73次。栈的回顾在介绍几种遍历之前,先回顾下栈的概念,他是具有元素先进后出特点的数据结构,通过指针sp++/--进行入栈、出栈。具有典型形象的一个例子就是括号的匹配,即问形如“()(()())())”的序列,括号是否匹配正确?利用栈进行判断时,从头往后扫描,每当遇到一个“(”则入栈一次,而每当遇到一个“)”则出栈一次,最后若栈空则顺利匹配,否则不正确匹配。这个例子非常形象,可以作为一个思考的中介桥梁..._如何实现二叉树的先序遍历、中序遍历和后序遍历的非递归算法c语言

几家大的券商的PB系统以及算法交易概况大致是怎样的?-程序员宅基地

文章浏览阅读1.3k次。PB的定位是托管-清算-交易。目前的PB系统方面的竞争点主要放在了交易环节(毕竟托管和清算没有多大的差异)。目前的pb交易环节的技术提供有恒生、讯投、金证、同花顺等,以满足私募及高净值个人多样化交易和账户集中管理需求。也许有人问了信托、公募基金、保险资管不用pb那是人家有席位或接口等优势。系统直接上O3.2,O3.2就不说了,金融圈里都晓得恒生HOMS/HAMP/Opuls,其实是O3.2精简..._公募 可以用 pb吗

推荐文章

热门文章

相关标签