各位高手们!帮忙调试一下,我这个程序怎样将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]); }