c语言题目按照下列公式计算cosx的值,直到最后一项小于10^-6为止:cos x=x的零次方/0!-x*x/2!+x*x*x*x/4!-x的六次方/6!+……我的程序是这样:#include#includevoid main(){float sum,term=1,x;int k=0,sign=1;printf("x:");s
来源:学生作业帮助网 编辑:六六作业网 时间:2024/11/24 09:24:44
c语言题目按照下列公式计算cosx的值,直到最后一项小于10^-6为止:cos x=x的零次方/0!-x*x/2!+x*x*x*x/4!-x的六次方/6!+……我的程序是这样:#include#includevoid main(){float sum,term=1,x;int k=0,sign=1;printf("x:");s
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输出就错了,这是为什么呀?
c语言题目按照下列公式计算cosx的值,直到最后一项小于10^-6为止:cos x=x的零次方/0!-x*x/2!+x*x*x*x/4!-x的六次方/6!+……我的程序是这样:#include#includevoid main(){float sum,term=1,x;int k=0,sign=1;printf("x:");s
已改,看注释
#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);
}
}