您好,欢迎访问三七文档
当前位置:首页 > 幼儿/小学教育 > 小学教育 > 变步长梯形公式(C语言)
-1-变步长梯形公式(C语言)程序://cehngxu.cpp:定义控制台应用程序的入口点。//#includestdafx.h#includestdio.h#includemath.hdoublef(doublex)//这里自定义了函数,因为出现sin(0)/0的情况,系统无法计算;{doubley;if(x==0)y=1;//把x=0作为一种情况,单独拿出来;elsey=sin(x)/x;//正常情况下的函数;return(y);}//编写这个自定义函数便于你在作业中的计算,对于不用的题目只需改动一下函数即可计算;voidmain()//主函数;{doublea,b,h,k,s,t[4998];//数组的定义中不能出现变量,故对其任意取值,一般取一个很大的数;intn=1,m=0;printf(pleaseinputa=);scanf_s(%lf,&a);//在VC环境下用scanf输入没有问题,但是在我这编译环境visualstudio2013下需要用scanf_s()输入;printf(pleaseinputb=);scanf_s(%lf,&b);t[1]=(b-a)*(f(a)+f(b))/2;do{h=(b-a)/n;s=0;for(k=0;kn;k++){s+=f(a+(k+0.5)*h);}t[2*n]=t[n]/2+h/2*s;//梯形的递推公式n=2*n;m=m+1;-2-}while(fabs(t[n]-t[n/2])=0.0000001);printf(\n计算次数=%d,m);printf(\n计算结果=%.7lf,t[n]);printf(\n误差为=%.10lf,fabs(t[n]-t[n/2]));}新加入的程序部分我做了批注,你应该能看懂,整个程序变化不大,主要是把下标我给你改成了数组,这样看起来比较直观,不容易迷糊。还有就会你那个while的终止条件改了一下,其他没什么变化。结果:
本文标题:变步长梯形公式(C语言)
链接地址:https://www.777doc.com/doc-1731718 .html