这是一道C程的题目:输入精度e,用下列公式求cos x的近似值,精确到最后一位的绝对值小于e。

要求定义和调用函数求函数近似值、cos(x)=x^0/0!-x^2/2!+x^4/4!-x^6/6!+……这是我的答案。为什么显示溢出?#include<stdio.h>... 要求定义和调用函数求函数近似值、cos(x) = x^0/0!-x^2/2!+x^4/4!-x^6/6!+……
这是我的答案。为什么显示溢出?
#include<stdio.h>
#include<math.h>
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<=i;i++){
fact=fact*a;
}
return fact;
}
展开
 我来答
赫连沛凝ck
2011-11-01 · TA获得超过4178个赞
知道大有可为答主
回答量:2356
采纳率:100%
帮助的人:2527万
展开全部

// cos(x) = x^0/0!-x^2/2!+x^4/4!-x^6/6!+……

#include <stdio.h>

#include <math.h>

const double PI = 3.14159265358979;

int main () {

double x,e;

double mycos(double x,double e);

printf("请输入精度e和度数α:");

scanf("%lf,%lf",&e,&x);

x = x*PI/180.0;

printf("cos(%.2lf) = %.13lf\n",180.0*x/PI,mycos(x,e));

return 0;

}

double mycos(double x,double e) {

int i = 2,flag = -1;

int denominator = 1;

double sum = 1.0,item = 10.0;

double numerator = 1.0;

double function(int i);

while(fabs(item) > e) {

numerator *= x*x;

denominator *= i*(i - 1);

item = flag*numerator/(double)denominator;

sum = sum + item;

flag = -flag;

i = i + 2;

}

return sum;

}

double function(int i) {

int a;

double fact = 1.0;

for(a = 2;a <= i;i++) {

fact = fact*a;

}

return fact;

}

Eli2021
2011-11-01 · TA获得超过664个赞
知道小有建树答主
回答量:1266
采纳率:72%
帮助的人:393万
展开全部
#include<stdio.h>
#include<math.h>

main ()
{
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=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<=i;i++){
fact=fact*a;
}
return fact;
}
追问
cos(x)为什么变成cosx(x)??还有,能点明一下问题么?谢谢!!
追答
#include 这个头文件中已经声明了一个名为cos的函数,也就是说,cos是标准库里面的函数,你不能和它重名,你得另外取一个名字。
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式