注册 登录
编程论坛 数据结构与算法

龙贝格公式求积分----输出有问题啦,求解答

梁朝斌 发布于 2012-12-11 23:46, 364 次点击
#include<stdio.h>
#include<math.h>
#define maxsize 100
int main(void)
{
     double a,b,t[maxsize],s[maxsize],c[maxsize],r[maxsize];
     double f(double c);
     double sum;
     int i,n,k;
     printf("请输入积分下限:\n");
     scanf("%lf",&a);
     printf("请输入积分上限:\n");
     scanf("%lf",&b);
     printf("please input n=\n");
     scanf("%d",&n);
   
   
     for(k=1;k<=n;k++)
     {
         sum=0;
         t[1]=(b-a)*(f(a)+f(b))/2;
         for(i=1;i<=pow(2,k-1);i++)
             sum+=f(a+(b-a)*(2*i-1))/pow(2,k);
         t[(int)pow(2,k)]=t[(int)pow(2,k-1)]/2+(b-a)*sum;
     }
     for(k=1;k<=n;k++)
     {
         s[(int)pow(2,k-1)]=(4/3)*t[(int)pow(2,k)]-(1/3)*t[(int)pow(2,k-1)];
     }
     for(k=2;k<=n;k++)
     {
         c[(int)pow(2,k-2)]=(16/15)*s[(int)pow(2,k-1)]-(1/15)*s[(int)pow(2,k-2)];
     }
     for(k=3;k<=n;k++)
     {
         r[(int)pow(2,k-3)]=(64/63)*c[(int)pow(2,k-2)]-(1/63)*c[(int)pow(2,k-3)];
     }
     printf("r[%d]=%lf",k);/*请问我这里该怎么输出来啊?k=0输出t1,k=1输出t2,s1,k=2输出t4,s2,c1,k=3输出t8,s4,c2,r1依次类推*/
     return 0;
}



double f(double c)
{
     double y;
     y=c;
     return y;
}
     
0 回复
1