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
}