将所有后面出现的"EPS"进行文本替换为"le-8"
顺便一说,我刚回答了一个问题,不知道是不是也是你问的,这个地方应该是 数字1 而不是小写的 L,即1e-8表示 10e的-8次方。
2 你需要把你自己写的函数 double fsinx(float x)的定义(就是花括号括起来的部分)一起拷贝到这个文件中,这样才不会有链接错误 LNK2019/
迭代就是函数自己调用自己,用的时候注意选择迭代结束条件就行了,不要陷入无限迭代。下面给出一个递归求阶乘的简单函数示例
/
long jiechen(long n){
if(n==1)return 1; //递归结束条件
else retrun(njiechen(n-1));//递归过程
}const
在C++里面是用来定义常量的,1e-6的意思是1乘以10的-6次方
你这里应该是fabs(x)<=eps而不是
fabs(x>=eps)
fabs(double
a)
是求浮点小数的绝对值,整形的是abs(int
i)
我估计你现在是求某个方程的解
x是某两个数之间的差值吧?
这句话的意思是
定义一个常量
eps=0000001;
//然后遍历一个集合带入某个方程,得出一个数a
,然后容a与已知常量
b进行求差
a-b=x;
fabs(x)<=esp
当求的的数a与已知常量十分接近时,说明你求的到解了#include <stdioh>
int main()
{ double s=0,eps,t=1;
int n,k;
scanf("%lf%d",&eps,&k);
for(n=1; n<=k&&t>=eps; n++)
{ t=10/(n(n+1));
s+=t;
}
printf("%2f\n",s);
return 0;
}一、denominator=denominator+3 (- -||| 这也太粗心了吧)
二、错在判断while()上,当item为负数,如-1/4时就退出循环了。可以考虑加个if判断
while(10item>=eps){
item=flag10/denominator;
flag=-flag;
s=s+item;
denominator=denominator+3;
if(item<0) //加这两句,相当于把负数变为绝对值了,至于abs好像要int
item=-item; //类型,忘了。楼主自己探究吧。
}
三、为了直观简洁,可合写一些,如:
#include<stdioh>
#include<mathh>
int main(void)
{
int flag=1,denominator=1;
double item=10,s=0,eps;
printf("Enter eps:");
scanf("%lf",&eps);
while(item>=eps)
{
item=flag10/denominator;
flag=-flag;
s=s+item;
denominator=denominator+3;
if(item<0)
item=-item;
}
printf("s=%lf\n",s);
return 0;
}
上机测试通过,应该没错吧~
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)