请看看我这个程序代码,提出合理的建议和改正,如果能写出tan和cot的代码更好(内附要求)

来源:百度知道 编辑:UC知道 时间:2024/05/28 12:58:17
/*三角函数的计算。(所用语言:C++)
计算sin(x)(前10项):
y=sin(x)=x/1!-(x*x*x)/3!+(x*x*x*x*x)/5!-(x*x*x*x*x*x*x)/7!+…(x为弧度)
第0项 第1项 第2项 第3项
i=1 i=2 i=3
并对该程序做需求分析和适当的扩充(代码要求100行以上),
要求补充:对使用的数据结构、函数调用进行必要的说明,
画出流程图,对于测试数据应考虑全面。*/
/*
Input:
Please input 2 numbers:
such as
1 2
Output:
sin=0.841471
cos=-0.415835
……
*/
#include <iostream>
#include <cmath>
#include <stdlib.h>
#define M 10 /*控制精度*/
#define N 4 /*输入输出N组数据*/
using namespace std;

int factor(int n) //阶乘函数n!
{
if( n <=1)
{
return 1;
}
else
{
return n*factor(n-1); //递归用法
}
}
int sin() /*sin函数*/
{
int i,j,s;
double sum,x,y;
scanf("%lf,%lf",&x,&y);
sum=0;
for(i=0;i<M;++i)
{
s=1;
for(j=1;j<=2*i+1;++j)
{

细节我就不仔细看了,给你点建议:
1.先用诱导公式把角变到比较小的范围里,防止收敛速度过慢及运算的不稳定
2.sin和cos好好写,tan和cot用sin和cos除一下就有了
3.虽然C++支持重载,sin和cos最好另外命名
4.执行计算的函数里面不要带有输入输出

good