c语言 求数值积分

c语言 求数值积分,第1张

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#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

printf("请输入积分下限a的值:")

scanf("%f",&a)

printf("请输入积分上限b的值:")

scanf("%f",&b)

printf("%f\n",fsimp(a,b,f1))

}

扩展资料

1、对应于一个积分式要有一段程序,可以改变程序的一小部分来改变所要求的积分式。

2、除数不能位0。

3、两个整数相除,结果仍是整数。

4、若被除数其中有一个为浮点数或者两个都为浮点数,则结果为浮点类型。 *** 作数必须为整数,不能是浮点数。


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/yw/12054163.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-20
下一篇 2023-05-20

发表评论

登录后才能评论

评论列表(0条)

保存