各位高手们!帮忙调试一下,我这个程序怎样将0的情况排除,我都调试了2天了....谢了
程序代码:#include<stdio.h>
#include<math.h>
#define a -1
#define b 1
#define eps 1e-6
#define N 100
double f(double x)
{
double m;
m=sin(x)/(3*x+sin(x));//怎样排除为零的情况
return m;
}
main()
{
int k,i;
double t[N][N];
double q,X;
t[0][0]=(b-a)*(f(a)+f(b))/2;
for(k=1;k<N;k++)
{
q=0;
for(i=1;i<=pow(2,k-1);i++)
{
X=a+(b-a)*(2*i-1)/pow(2,k);
q=q+f(X);
}
t[0][k]=t[0][k-1]/2+(b-a)*q/pow(2,k);
for(i=1;i<=k;i++)
{
t[i][k]=(pow(4,i)*t[i-1][k]-t[i-1][k-1])/(pow(4,i)-1);
}
if(fabs(t[k-1][k]-t[k-1][k-1])<=eps)
break;
}
if(k>=N) printf("");
else
printf("The result is\n%.13f \n\n",t[k][k]);
}


