求余弦函数的近似值 求纠错请纠错,不要给出一大段别人的正确的代码……输入一个正整数 repeat (0
来源:学生作业帮助网 编辑:作业帮 时间:2024/11/05 16:06:39
求余弦函数的近似值 求纠错请纠错,不要给出一大段别人的正确的代码……输入一个正整数 repeat (0
求余弦函数的近似值 求纠错
请纠错,不要给出一大段别人的正确的代码……
输入一个正整数 repeat (0
求余弦函数的近似值 求纠错请纠错,不要给出一大段别人的正确的代码……输入一个正整数 repeat (0
#include "stdio.h"
#include "math.h"
double fact(int n)
{
double i,sum=1;
for(i=2;i<=n;i++)
sum*=i;
return sum;
}
double funcos(double e, double x)
{
int i,m=1;//加一个标志位,在1和-1之前变换
double sum=0,fenzi,fenmu,t;//这儿,你的sum没初值,结果必然是错的,初始化为0
for(i=0;;i+=2)
{
fenzi=pow(x,i);
fenmu=fact(i);
t=m*fenzi/fenmu;
if(fabs(t)<e) // 由于存在负号,所以求绝对值 if(t<e)
break;
sum+=t;
m=-m;
//加正项去负项的做法有问题 if((i+4)%4==0) sum+=t;
// else sum-=t;
}
return sum;
}
int main(void)
{
int repeat, ri;
double e, sum, x;
scanf("%d", &repeat);
for(ri = 1; ri <= repeat; ri++)
{
scanf("%lf%lf", &e, &x);//double类型最好用%lf 格式控制scanf("%le%le",&e,&x);
sum=funcos(e,x);
printf("sum = %f\n", sum);
}
}
结果:
你的样例1输出是错的
cos(0)==1
sin(0)==0才是对的哦