输入精度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后 回车没反应
展开
 我来答
dove_lm
2012-12-01 · TA获得超过148个赞
知道小有建树答主
回答量:249
采纳率:0%
帮助的人:214万
展开全部
程序运行没报错?,fact函数计算阶乘功能未实现,product没初始,则默认为0,而且i从0开始,计算出的a阶乘永远是0,funcos中fact(i)作为除数了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
鲁步友卉2k
2012-12-01 · TA获得超过149个赞
知道小有建树答主
回答量:100
采纳率:0%
帮助的人:82.7万
展开全部
随便写写试试

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;
}
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
HC93712
2013-04-11
知道答主
回答量:1
采纳率:0%
帮助的人:1612
展开全部
#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);
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式