输入精度e,求cos(x)近似值,要求精确到最后一项的绝对值小于e,且定义并调用函数funcos(e,x),

问题描述:

输入精度e,求cos(x)近似值,要求精确到最后一项的绝对值小于e,且定义并调用函数funcos(e,x),
有式:cos(x)=pow(x,0)/0!-pow(x,2)/2!+pow(x,4)/4!-pow(x,6)/6!+………………
#include
#include
main()
{
double e,x,sq;
double funcos(double e,double x);
printf("Enter e,x:");
scanf("%lf,%lf",&e,&x);
sq=funcos(e,x);
printf("cos(%.2f)=%f",x,sq);
return 0;
}
double funcos(double e,double x)
{
int flag=1,n=0;
double fact(int n);
double item,sum;
do{
item=flag*pow(x,2*n)/fact(2*n);
sum+=item;
n++;
flag=-flag;
}while((item/flag)>=e);
return sum;
}
double fact(int n)
{
int i,fact=1;
for(i=1;i
1个回答 分类:综合 2014-11-26

问题解答:

我来补答
指出几个问题吧..
(1)double funcos(double e,double x);函数申明应该放在main函数外面;
(2)double funcos(double e,double x)函数里面的sum变量没有初始化,item最好也初始化一下;
(3)double fact(int n)函数应该在main函数之前申明一遍,而且里面最好不要使用fact变量.
再问: (1)应该没问题,这是使用声明 (2)改了,但是没什么作用 (3)这个fact()应该怎么压到另一个函数里,就是不知道怎么用才分出来的
再答: (1)使用申明不要放在函数里面,放在main函数的前面. 比如 double funcos(double ,double ); double fact(int ); main() {...} double funcos(double e,double x){...} double fact(int n){...} (2)sum变量肯定是要初始化为0的. (3)fact函数里面不要把变量用为fact.换成其他的比如temp. 这是c++程序..你可以对比一下. #include #include using namespace std; double funcos(double e,double x); double fact ( int ) ; int main() { double e,x,sq; cout > e >> x ; sq=funcos(e,x); cout
 
 
展开全文阅读
剩余:2000
上一页:示意图也请画出
下一页:拜托详细解答