提高篇第2-5课第七题
来源:互联网 发布:云计算平台性能指标 编辑:程序博客网 时间:2024/05/01 20:53
#include <stdio.h>#include <stdlib.h>#include <math.h>#define pi 3.1415926//第七题double mysin(double x);double myabs(double x);int main( ){ printf("sin(π/2)的值为%.5f\n", mysin(pi/2)); printf("sin(56°)的值为%.5f\n", mysin(56*pi/180)); return 0;}//下面定义mysin函数,求sin值double mysin(double x){ int i=3,n=-1; double t=x; double sin=x; double fact=1; printf("%lf\n",sin); while(myabs(t)>=1e-5) { fact*=i*(i-1); t*=(n*x*x)/fact; sin+=t; i+=2; n=-n; } return sin;}//下面定义myabs函数double myabs(double x){ double r; if(x>=0) r=x; else r=-x; return r;}
上述代码存在着错误,编写的时候有点恍惚了,没有仔细调试,下面给出老师给出的标准代码
#include<stdio.h>#define pi 3.1415926double mysin(double x);double myabs(double x);int main( ){ printf("sin(π/2)的值为%.5f\n", mysin(pi/2)); printf("sin(56°)的值为%.5f\n", mysin((56.0/180)*pi)); return 0;}//下面定义mysin函数,求sin值double mysin(double x){ double sum=x,x_pow=x,item,fact=1; int n=1,sign=1; //定义变量时赋初值,已经将第一项考虑到累加和sum中 do { fact=fact*(n+1)*(n+2); //fact用于表示阶乘,在公式中作分母 x_pow*=x*x; //x_pow是分子中用于表示阶乘,在公式中作分母 sign=-sign; //确定即将要累加的这一项的符号 item =x_pow/fact*sign; //计算出要累加的项 sum+=item; //将该项累加上去 n+=2; }while(myabs(item)>1e-5); return sum;}//下面定义myabs函数double myabs(double x){ return ((x>=0)?x:-x);}
0 0
- 提高篇第2-5课第七题
- 提高篇第2-5课第一题
- 提高篇第2-5课第二题
- 提高篇第2-5课第三题
- 提高篇第2-5课第四题
- 提高篇第2-5课第六题
- 第40课第七题
- 第七篇 提高学习效率
- 第七章第2小题
- 提高篇第6-10课作业第一题
- 提高篇第6-10课作业第二题
- 提高篇第6-10课作业第三题
- 提高篇第16-19课第三题
- 提高篇第16-19课第四题
- 提高篇第20-21课作业第一题
- 提高篇第20-21课第二题
- 提高篇第20-21课第三题
- 提高篇第20-21课第四题
- 用小米平板,如何看小度路由器所连接的移动硬盘上的视频
- 15年5月嵌入式学习笔记之系统时钟
- Lowest Common Multiple Plus(最小公倍数)
- highchart使用与图像动态代码
- Group by用法
- 提高篇第2-5课第七题
- mybatis批量插入
- AppleWatch开发教程之调试程序使用帮助文档
- 欢迎使用CSDN-markdown编辑器
- 显示python的site-packages路径
- matlab中如何获取当前日期时间
- 1
- Intent数据的传递
- java 实现下载htttp文件的简便办法 FileUtils IOUtils