源代码如下:
#include#includefloat f1(float x)
{
return(1.0+x)
}
float f2(float x)
{
return(2.0*x+3.0)
}
float f3(float x)
{
return(exp(x)+1)
}
float f4(float x)
{
return(pow(1+x,2))
}
float f5(float x)
{
return(pow(x,3))
}
float fsimp(float a,float b,float (*p)(float))
{
float c,s
c=(a+b)/2
s=(b-a)/6*(p(a)+4*p(c)+p(b))
return s
}
int main()
{
float a,b
scanf("%f",&a)
printf("请输入积分上限b的值:")
scanf("%f",&b)
printf("%f\n",fsimp(a,b,f1))
}
扩展资料
1、对应于一个积分式要有一段程序,弊脊做可以改变程序的一小部分来改变所要求的积分式野猜。
2、除数不能位0。
3、租衡两个整数相除,结果仍是整数。
4、若被除数其中有一个为浮点数或者两个都为浮点数,则结果为浮点类型。 *** 作数必须为整数,不能是浮点数。
//还是给你写个简单或斗的吧#include<没团孙枯链stdio.h>
#include <math.h>
double Int(double a,double b,double d)
{
double x=a,y,sum=0
while (x<=b)
{
y=x*x*exp(x)
sum+=d*y
x+=d
}
return sum
}
void main()
{
double a=0,b=1,d=0.001
printf("%lf\n",Int(a,b,d))
}
下面的代码就是对1/(1+x^2) 求积分,用的是按梯形微森缓分 计算的竖春烂
步长为10000
代码如下:
#include<stdio.h>
#define STEP 10000
double f(double x)
{
return 1.0/(1+x*x)
}
void main()
{
double a,b,x1,x2,area=0,h
scanf("%lf%lf",&a,&b)
h=(b-a)/STEP
x1=a
x2=a+h
while(x2<=b)
{
area+=h*(f(x1)+f(x2))/2
x1=x2
x2+=h
}
printf("余漏%lf\n",area)
}
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)