请问这里哪里错了???
#include<stdio.h>
#include<math.h>
void main()
{
float integral(float a,float b,float(*p)(float x) );
float f1(float x);
float f2(float x);
float f3(float x);
float f4(float x);
float f5(float x);
float x;
float a=5,b=7;
float result;
printf("请输入x的值:\n");
scanf("%f",&x);
result=integral(a,b,f1);
result=integral(a,b,f2);
result=integral(a,b,f3);
result=integral(a,b,f4);
result=integral(a,b,f5);
}
float f1(float x)
{
float s;
s=1+x;
return s;
}
float f2(float x)
{
float s;
s=2*x+3;
return s;
}
float f3(float x)
{
float s;
s=(float)exp(x)+1; //e的x次方+1
return s;
}
float f4(float x)
{
float s;
s=(1+x)*(1+x);
return s;
}
float f5(float x)
{
float s;
s=x*x*x;
return s;
}
float integral(float a,float b,float(*p)(float x) )
{
float i,result,x;
for(i=a;i<=b;i++)
{
result+=(*p)(x);
}
return result;
printf("结果是: %3.3f",result);
}
对于一重定积分来说其求解可以使用梯形法进行求解,计算公式如下所示:
其中,f(x)为被积函数,为横坐标的两点间的间隔,越小,则计算出的结果越精确。
对于求解此类问题可以使用C语言中的回调函数编写通用的计算函数,代码如下:
#include <stdio.h>没呢。。不过我在主函数那里声明了喔。。
追答我的意思是,你的声明在下面,可上面调用的时候,参数还没声明啊,我是这个意思
追问噢。。原来这样啊。。
追答你改好了,哪里错了呢
追问最后 return result; 那里错了,我先跳了出来所以结果输不出来,谢谢你帮忙啦。。。
追答啊,这到没事,不过,那种声明在下面的语法居然没错?我还真没那样学过。恩,C中,return是结束语。这到是,当时只顾看上面那些,没看下面,呵呵。我也受教了。
c语言 求定积分的通用函数
其中,f(x)为被积函数,为横坐标的两点间的间隔,越小,则计算出的结果越精确。对于求解此类问题可以使用C语言中的回调函数编写通用的计算函数,代码如下:include <stdio.h>#include <stdlib.h>#include<math.h>\/\/功能:返回f(x)在积分区间[a,b]的值\/\/参数:FunCallBack 指向用于计算f(x)的...
C语言编程——用矩形法求定积分的通用函数。要求:求sinx.cosx.和e∧x...
t=(b-a)\/100.0; \/\/区间 for(i=0;i<100;i++)s+=t*fan(a+t*i) \/\/fan函数自己定义去吧,想要什么函数,就写什么函数
...利用函数指针编写一个用矩形法求定积分的通用函数,包括正弦,余弦和...
for(i=0;i<n;i++)这里用i<=n的话会多计算一个区间
请大家指点下哪里错了??c语言 用指针变量求定积分通用函数 我的程序...
scanf("%d%d",&a,&b);改为 scanf("%f%f",&a,&b);
用C语言编写一个求定积分的程序
这是辛普森积分法。给你写了fun_1( ),fun_2(),请自己添加另外几个被积函数。调用方法 t=fsimp(a,b,eps,fun_i);a,b --上下限,eps -- 迭代精度要求。include<stdio.h> include<stdlib.h> include <math.h> double fun_1(double x){ return 1.0 + x ;} double fun_2(...
C语言用指向函数的指针作函数参数写求通用定积分公式。
看不出有什么编译或执行的问题。但您的integral函数中的循环控制有点小问题,应该是 for ( i=a;i
C语言编程:求cosx sinx 2x+1 在(a,b)的定积分 ab的值从键盘输入。(1...
double line(double x);double integral(double a, double b, double (*p)(double), double n);int main(){ printf("%lf\\n",integral(1,2,&cosx,100));printf("%lf\\n",integral(2,3,&sinx,100));printf("%lf\\n",integral(3,4,&line,100));return 0;} double integral(double a...
...指向函数的指针出一个用矩形法求定积分的通用函数,假定被积函数是数...
a是下限,b是上限,ab的时候循环终止,因此循环条件 应该是while(a
求94年 全国计算机等级考试二级C语言笔试试题!
(12) 以下程序中的trap函数是一个用梯形法求定积分的通用函数。梯形法求定积分的公式为: n-1 a-b s=((f(a)+f(b))\/2+∑ f(a+i*h))*h , h=|---| i=1 n 其中,n为积分小区间数。以下程序调用trap函数求定积分,被积函数是: f(x)=x*x+3*x+2,且n=1000,a=0,b=4。 #incl...
写一个用矩阵法求定积分的通用函数
寒..定积分..忘干净了,我觉得先不是了解什么是矩阵法,而应该先了解定积分。因为定积分才是问题所在,而矩阵法只是解决这个问题的方法,说不定还有其他办法,也说不定其他办法能帮你再想到矩阵法。