作业帮 > 综合 > 作业

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

来源:学生作业帮 编辑:拍题作业网作业帮 分类:综合作业 时间:2024/04/27 22:23:46
c语言题目按照下列公式计算cosx的值,直到最后一项小于10^-6为止:
cos x=x的零次方/0!-x*x/2!+x*x*x*x/4!-x的六次方/6!+……我的程序是这样:#include
#include
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输出就错了,这是为什么呀?
已改,看注释
#include
#include
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);
}
}