编制程序,利用下式计算ucosx的近似值,直到最后一项的绝对值小于

ucosx=1-x^2/2!+x^4/4!-x^6/6!+...直到最后一项小于10^-6#include<stdio.h>#include<math.h>intfun(... ucosx=1-x^2/2!+x^4/4!-x^6/6!+...
直到最后一项小于10^-6

#include<stdio.h>
#include<math.h>
int fun(int i)
{
if(i==1) return 1;
else return i*fun(i-1);
}

int main()
{
float sum=1.0,x;
int temp=1,n=2;
scanf("%f",&x);
for(;;n+=2)
{
temp=(-1)*temp;
sum=sum+temp*(pow(x,n)/fun(n));
if(fabs((pow(x,n)/fun(n)))<10e-6) break;
}
printf("%f\n",sum);
return 0;
}
求大神帮忙看看错哪里了QAQ...输入1和2得到的结果是对的,3及以上就输不出结果了
展开
 我来答
叫我火车头就好
2018-05-24
知道答主
回答量:1
采纳率:0%
帮助的人:870
展开全部

int fun(int i)改为double fun(int i)

x=3时,计算3的十四次方比14的阶乘出现问题,是fun(14)的问题具体看图,最后一个才是正确的,还有麻烦下次您能自己多想想,每一项都试试,我也是想了一个多小时才解开的!

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

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式