
输入精度e 和实数x,用下列公式求cos x 的近似值,精确到最后一项的绝对值小于e。
#include<stdio.h>#include<math.h>doublefact(inta);doublefuncos(doublee,intx);intmain(...
#include <stdio.h>#include <math.h>
double fact(int a);
double funcos(double e,int x);
int main()
{
int x;
double e,cosx;
printf("Enter e=");
scanf("%lf",&e);
printf("Enter x=");
scanf("%d",&x);
cosx=funcos(e,x);
printf("%.2f",cosx); return 0;
}
double fact(int a){
int i;
double product;
for(i=0;i<=a;i++)
product*=i;
return product;
}
double funcos(double e,int x){
int i=0;
double item=1.0,sum=0,flag=1.0;
while(fabs(item)>e){
item=(pow(x,i)*flag)/fact(i);
flag=-flag;
sum+=item;
i=i+2;
}
return sum;}
运行输出 e和x后 回车没反应 展开
double fact(int a);
double funcos(double e,int x);
int main()
{
int x;
double e,cosx;
printf("Enter e=");
scanf("%lf",&e);
printf("Enter x=");
scanf("%d",&x);
cosx=funcos(e,x);
printf("%.2f",cosx); return 0;
}
double fact(int a){
int i;
double product;
for(i=0;i<=a;i++)
product*=i;
return product;
}
double funcos(double e,int x){
int i=0;
double item=1.0,sum=0,flag=1.0;
while(fabs(item)>e){
item=(pow(x,i)*flag)/fact(i);
flag=-flag;
sum+=item;
i=i+2;
}
return sum;}
运行输出 e和x后 回车没反应 展开
3个回答
展开全部
程序运行没报错?,fact函数计算阶乘功能未实现,product没初始,则默认为0,而且i从0开始,计算出的a阶乘永远是0,funcos中fact(i)作为除数了
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
随便写写试试
double funcos(double e, double x)
{
double b, d, n, r, i;
e = fabs(e), x *= x;
r = b = 0, d = n = 1;
while( fabs(i = d / n) > e ) {
r += i;
d *= x, n *= - b * (b+1);
b += 2;
}
return r;
}
double funcos(double e, double x)
{
double b, d, n, r, i;
e = fabs(e), x *= x;
r = b = 0, d = n = 1;
while( fabs(i = d / n) > e ) {
r += i;
d *= x, n *= - b * (b+1);
b += 2;
}
return r;
}
本回答被提问者和网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
#include<stdio.h>
#include<math.h>
double funcos(double x,double e)
{
double s=0,t=1,n=0;
while(fabs(t)>e)
{
s=s+t;
t=(t*(-1)*x*x)/((n+1)*(n+2));
n=n+2;
}
return s;
}
main()
{
double x,e,s;
scanf("%lf%lf",&x,&e);
s=funcos(x,e);
printf("cos x=%lf",s);
}
#include<math.h>
double funcos(double x,double e)
{
double s=0,t=1,n=0;
while(fabs(t)>e)
{
s=s+t;
t=(t*(-1)*x*x)/((n+1)*(n+2));
n=n+2;
}
return s;
}
main()
{
double x,e,s;
scanf("%lf%lf",&x,&e);
s=funcos(x,e);
printf("cos x=%lf",s);
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询