,C中关于函数指针的有关问题
求助,C中关于函数指针的问题
利用指向函数的指针,调用多个函数,根据书中例子,改变了一下,但一直没结果,不知道哪错了,程序如下:
#include <stdio.h>
typedef float (*fun)(float); //定义一个指向函数的指针
float f1(float x)
{
float f;
f=1+x*x;
return f;
}
float f2(float x)
{
float f;
f=1+x*x+x*x*x;
return f;
}
float integral (fun fp,float a,float b) //定积分
{
float s,h,y;
int n,i;
s=(fp(a)+fp(b))/2;
n=100;
h=(b-a)/n;
for(i=1;i <n;i++)
s=s+fp(a+i*h);
y=s*h;
return y;
}
void main()
{
float y1,y2;
y1=integral(f1,0,1);
y2=integral(f2,0,2);
printf( "y1=\ny2=\n ",y1,y2);
}
------解决方案--------------------
printf( "y1=%f\ny2=%f\n ",y1,y2);
------解决方案--------------------
唉,前面一大段,就是最后一行 :)
利用指向函数的指针,调用多个函数,根据书中例子,改变了一下,但一直没结果,不知道哪错了,程序如下:
#include <stdio.h>
typedef float (*fun)(float); //定义一个指向函数的指针
float f1(float x)
{
float f;
f=1+x*x;
return f;
}
float f2(float x)
{
float f;
f=1+x*x+x*x*x;
return f;
}
float integral (fun fp,float a,float b) //定积分
{
float s,h,y;
int n,i;
s=(fp(a)+fp(b))/2;
n=100;
h=(b-a)/n;
for(i=1;i <n;i++)
s=s+fp(a+i*h);
y=s*h;
return y;
}
void main()
{
float y1,y2;
y1=integral(f1,0,1);
y2=integral(f2,0,2);
printf( "y1=\ny2=\n ",y1,y2);
}
------解决方案--------------------
printf( "y1=%f\ny2=%f\n ",y1,y2);
------解决方案--------------------
唉,前面一大段,就是最后一行 :)