如何用c语言编写用数值积分法求π,请大神指教

Python010

如何用c语言编写用数值积分法求π,请大神指教,第1张

#include <stdio.h>

main()

{

double pi = 3, x = 3

int i

for(i = 1x >0.000001i++) {

x *= 0.25*(2*i-1)*(2*i-1)/(2*i)/(2*i+1)

pi += x

printf("PI = %lf\n", pi)

}

}

H=(B-A)/N这一句不应该放在变量声明中,因为刚定义时,A,B,N没有赋值,是随机值

应该将

float A,B,N,H=(B-A)/N,sum=0

改为:

float A,B,N,H,sum=0

将H=(B-A)/N放在scanf ("%f",&N)后面。

#另外建议将int i放在主函数起始处。

-----------------------------------------

更改后的程序:

#include<stdio.h>

float f(float x)

{

return 4/(x*x+1)

}

void main()

{

float A,B,N,H,sum=0

int i

printf ("请输入A值:")

scanf ("%f",&A)

printf ("请输入B值:")

scanf ("%f",&B)

printf ("请输入N值:")

scanf ("%f",&N)

H=(B-A)/N

for(i=1i<=Ni++)

{

sum+=(f(A)+f(A+H))*H/2

A=A+H

}

printf("%.5f\n",sum)

}

#include <stdio.h>

#include <math.h>

double integrate(double (*f)(double),double a,double b)

{

double i=1.0/1000000

double sum=0,x

for(x=ax<=b)

{

sum+=f(x)*i

x+=i

}

return sum

}

double f(double x)

{

return sin(x)/x

}

int main()

{

int a=1,b=2

printf("%lf\n",integrate(f, a, b))

return 0

}