输入精度 e 和 x,用下列公式求cos(x)的近似值,精确到最后一项的绝对值小于e.

要求定义和调用函数求函数近似值、cos(x)=x^0/0!-x^2/2!+x^4/4!-x^6/6!+……求纠错,希望大大能够指出哪里错了,不要重新写#include"s... 要求定义和调用函数求函数近似值、cos(x) = x^0/0!-x^2/2!+x^4/4!-x^6/6!+……
求纠错,希望大大能够指出哪里错了,不要重新写
#include "stdio.h"
#include "math.h"
double fact(int n);
int main(void) {
int repeat,n,ri;
double e,sum,x;
scanf("%d",&repeat);
for(ri=1;ri<=repeat;ri++){
scanf("%le%le",&e,&x);
n=0;
sum=pow(x,2*n)*1.0/(fact(n));
while(pow(x,2*n)*1.0/(fact(n))>=e){
sum=sum+pow(-1,n+1)*pow(x,2*(n+1))*1.0/(fact(2*(n+1)));
n=n+1;}
printf("sum = %f\n", sum);
}
}
double fact(int n){
int i;
double result=1;
if(n==0)
result=1;
else
for(i=1;i<=n;i++)
result=result*i;
return result;}
展开
 我来答
百度网友6fe74e2
2013-04-16 · TA获得超过6596个赞
知道大有可为答主
回答量:1973
采纳率:100%
帮助的人:488万
展开全部

认真看了你的代码,没有问题,

只是我用的VS2010

sum=sum+pow(-1,n+1)*pow(x,2*(n+1))*1.0/(fact(2*(n+1)));   

这句里需要改一下,-1改成-1.0

sum=sum+pow(-1.0,n+1)*pow(x,2*(n+1))*1.0/(fact(2*(n+1)));   

结果:

没有问题的,你自己运行有什么错误么。

推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式