c语言题目按照下列公式计算cosx的值,直到最后一项小于10^-6为止:

cosx=x的零次方/0!-x*x/2!+x*x*x*x/4!-x的六次方/6!+……我的程序是这样:#include<stdio.h>#include<math.h>v... cos x=x的零次方/0!-x*x/2!+x*x*x*x/4!-x的六次方/6!+……我的程序是这样:#include<stdio.h>
#include<math.h>
void main()
{
float sum,term=1,x;int k=0,sign=1;
printf("x:");
scanf("%f",&x);
sum=1;
while(fabs(term)>1e-6)
{k=k+2;
term*=x*x/k/(k-1);
sign=-sign;
sum+=sign*term;
printf("sum=%6.2f\n",sum);
}
}
当数值小的时候输出时对的,输入大的数的时候如30输出就错了,这是为什么呀?
展开
 我来答
terranlong
2012-03-16 · TA获得超过7294个赞
知道大有可为答主
回答量:2660
采纳率:0%
帮助的人:3973万
展开全部
已改,看注释
#include<stdio.h>
#include<math.h>
void main()
{
double sum,term=1,x; //float的精度不够,改成double就可以了,31.4打印0.00
int k=0,sign=1;
printf("x:");
scanf("%lf",&x);
sum=1;
while(fabs(term)>1e-6)
{
k=k+2;
term*=x*x/k/(k-1);
sign=-sign;
sum+=sign*term;
printf("sum=%6.2lf\n",sum);
}
}
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式