请教循环方面的问题
#include "stdio.h"#include<math.h>
double f(double x)
{
double z;
z=pow(3,x)*(5*x+7)*sin(x*x)*pow(x,1.4);
return(z);
}
void main()
{
int l,i,m;
double T[20],h,g,a;
T[0]=f(1)+f(3);
m=1;
for(l=1;l<14;l++)
{ h=0;
for(i=1;i<=pow(2,l-1);i++)
{
a=1+(2*i-1)/pow(2,l-1);
h+=f(a);
}
T[l]=(T[l-1]+h/pow(2,l-2))/2;
}
do
{
for(i=1;i<=6-m+1;i++)
{
T[i-1]=(pow(4,m)*T[i]-T[i-1])/(pow(4,m)-1);
}
g=(pow(4,m+1)*T[1]-T[0])/(pow(4,m+1)-1);
m++;
}while(m<6&&fabs(T[0]-(pow(4,m)*T[1]-T[0])/(pow(4,m)-1))>0.00001);
for(i=0;i<=10;i++)
printf("d:%f \n",T[i]);
printf("%f",g);
}这个程序的运行结果是440左右
但是如果我将h=0放在这个地方 程序运行的结果就不一样了 请教一下为什么
for(l=1;l<14;l++)
{
for(i=1;i<=pow(2,l-1);i++)
{ h=0;
a=1+(2*i-1)/pow(2,l-1);
h+=f(a);
}
T[l]=(T[l-1]+h/pow(2,l-2))/2;
}
还有就是请教有关格式问题 似乎我编的程序看上去很不好看 但是不知道怎么排版