首页 > 其它 > 题目详情
这是一道C程的题目:输入精度e,用下列公式求cos x的近似值,精确到最后一位的绝对值小于e.要求定义和调用函数求函数近
题目内容:
这是一道C程的题目:输入精度e,用下列公式求cos x的近似值,精确到最后一位的绝对值小于e.
要求定义和调用函数求函数近似值、cos(x) = x^0/0!-x^2/2!+x^4/4!-x^6/6!+……
这是我的答案.为什么显示溢出?
#include
#include
main ()
{
double e,x;
double cos(double x);
scanf("%lf%lf",&e,&x);
printf("%f\n",cos(x));
return 0;
}
double cos(double x)
{
int i,flag;
double e,sum,item;
double function(int i);
flag=1;
i=0;
sum=0;
while(fabs(item)>e){
item=flag*pow(x,i)/function(i);
sum=sum+item;
flag=-flag;
i=i+2;
}
return sum;
}
double function(int i)
{
int a;
double fact;
fact=1.00;
for(a=2;a优质解答
#include#includemain (){double e,x;double cosx(double x);scanf("%lf%lf",&e,&x);printf("%f\n",cosx(x));return 0;}double cosx(double x){int i,flag;double e,sum,item;double function(int i);flag=1;i=0;sum... - 追问:
- cos(x)为什么变成cosx(x)??还有,能点明一下问题么?谢谢!!
- 追答:
- #include
这个头文件中已经声明了一个名为cos的函数,也就是说,cos是标准库里面的函数,你不能和它重名,你得另外取一个名字。
要求定义和调用函数求函数近似值、cos(x) = x^0/0!-x^2/2!+x^4/4!-x^6/6!+……
这是我的答案.为什么显示溢出?
#include
#include
main ()
{
double e,x;
double cos(double x);
scanf("%lf%lf",&e,&x);
printf("%f\n",cos(x));
return 0;
}
double cos(double x)
{
int i,flag;
double e,sum,item;
double function(int i);
flag=1;
i=0;
sum=0;
while(fabs(item)>e){
item=flag*pow(x,i)/function(i);
sum=sum+item;
flag=-flag;
i=i+2;
}
return sum;
}
double function(int i)
{
int a;
double fact;
fact=1.00;
for(a=2;a
优质解答
- 追问:
- cos(x)为什么变成cosx(x)??还有,能点明一下问题么?谢谢!!
- 追答:
- #include
这个头文件中已经声明了一个名为cos的函数,也就是说,cos是标准库里面的函数,你不能和它重名,你得另外取一个名字。
本题链接: