
输入精度 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;} 展开
求纠错,希望大大能够指出哪里错了,不要重新写
#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;} 展开
1个回答
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询