📄 fuhuatixing.c
字号:
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
float f(float x)
{
float j;
j=x/(1+x*x*x);
return (j);
}
void main ()
{
float h,m,n,sum=0.0,i;
float S[32],C[16],T[64];
int t,j,k;
printf("Input the low and the high point of the expression:");
scanf("%f%f",&m,&n);
if(n<=m)
{
printf("You have put the wrong numbers,reput again:");
scanf("%f%f",&m,&n);
}
printf(" the expression is :f=x/(1+x*x*x)\n");
for(t=1;t<=64;t*=2 )
{
h=(float)((n-m)/(float)t);
for(i=m;i<=n;i+=h)
{
sum+=((h/2.0)*(2.0*f(i)));
}
sum-=((h/2.0)*(f(m)+f(n)));
T[t]=sum;
printf("T[%d]=%6f\n",t,sum);
sum=0.0;
}
for(j=1;j<=32;j*=2)
{
S[j]=(float)((4.0*T[2*j]-T[j])/3.0);
printf("\nS[%d]=%6f",j,S[j]);
}
printf("\n");
for(k=1;k<=16;k*=2)
{
C[k]=(float)((16.0*S[2*k]-S[k])/15.0);
printf("\nC[%d]=%6f",k,C[k]);
}
printf("\n");
for(t=1;t<=64;t*=2)
{
if(fabs(T[2*t]-T[t])<=0.001)
{
printf("\nThe accurate result is f=T[%d]=%6f\n",2*t,T[2*t]);
t=65;
}
}
printf("\n");
for(k=1;k<=16;k*=2)
{
if(fabs(C[k]-S[2*k])<=0.001)
{
printf("\nThe accuate result is f=C[%d]=%6f",k,C[k]);
k=17;
}
}
getch();
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -