当前位置: 代码迷 >> C语言 >> [求助]函数指针程序出了点毛病
  详细解决方案

[求助]函数指针程序出了点毛病

热度:350   发布时间:2006-08-31 11:40:46.0
[求助]函数指针程序出了点毛病
#include<stdio.h>
#include<io.h>
#include<math.h>
main()
{
float f1(float,float);
float f2(float,float);
float f3(float,float);
float f4(float,float);
float f5(float,float);
float integral(float ,float ,float (*fun)(float,float));
float a,b;
clrscr();
flushall();
printf("input the upper limit,lower limit:");
scanf("%f,%f",&a,&b);
integral(a,b,f1);
integral(a,b,f2);
integral(a,b,f3);
integral(a,b,f4);
integral(a,b,f5);
getch();
}
float f1(float a,float b)
{
float z;
z=(a*a/2+a*a*a/3)-(b*b/2+b*b*b/3);
return (z);
}
float f2(float a,float b)
{
float z;
z=(a*a*a*2/3+a*a*3/2)-(b*b*b*2/3+b*b*3/2);
return (z);
}
float f3(float a,float b)
{
float z;
a=(double) a;
b=(double) b;
z=(exp(a)+a)-(exp(b)+b);
z=(float) z;
return (z);
}
float f4(float a,float b)
{
float z;
z=(a+a*a+a*a*a/3)-(b+b*b+b*b*b);
return (z);
}
float f5(float a,float b)
{
float z;
z=(a*a*a*a/4)-(b*b*b*b/4);
return (z);
}
float integral(float a,float b,float (*fun)(float,float))
{
float result;
result=(*fun)(a,b);
printf("the integral result is %f\n",result);
}
运行时f1得到结果,但是f2就开始报错,怎么回事啊?
搜索更多相关的解决方案: 指针  函数  毛病  

----------------解决方案--------------------------------------------------------

a=(double) a; //??这样可以类型转换么?就算编译器不报错也达不到你要的效果吧
b=(double) b; //??

float integral(float a,float b,float (*fun)(float,float))
{
float result;
result=(*fun)(a,b);
printf("the integral result is %f\n",result); return 0;//应该有个返回值吧
}


----------------解决方案--------------------------------------------------------

这个程序编译都不能通过


----------------解决方案--------------------------------------------------------
  相关解决方案