利用指针函数编写求定积分通用函数的问题——谭浩强教材P294
#include <stdio.h>#include <math.h>
int main()
{
float a, b;
printf("请输入a和b:");
scanf_s("%f%f", &a, &b);
float f1(float, float);
float f2(float, float);
float f3(float, float);
float f4(float, float);
float f5(float, float);
void integral(float, float, float(*fun)(float, float));
integral(a, b, f1);
integral(a, b, f2);
integral(a, b, f3);
integral(a, b, f4);
integral(a, b, f5);
return 0;
}
void integral(float x, float y, float(*fun)(float x, float y))
{
printf("%.2f\n", (*fun)(x, y));
}
float f1(float x, float y)
{
float z;
return z = y + 0.5*y*y - x - 0.5*x*x;
}
float f2(float x, float y)
{
float z;
return z = y*y + 3 * y - x*x - 3 * x;
}
float f3(float x, float y)
{
float z;
return z = exp(y) + y - exp(x) - x;
}
float f4(float x, float y)
{
float z;
return z =(1/3)*((1+y)*(1+y)*(1+y)-(1+x)*(1+x)*(1+x));
}
float f5(float x, float y)
{
float z;
return z = (1/4)*(y*y*y*y - x*x*x*x);
}
输入1 2
最后2个输出结果是
0.00
0.00
其他三个都是正确的
为什么后面2个不正确?