问下列函数错误在哪

来源:百度知道 编辑:UC知道 时间:2024/05/16 17:27:15
#include <iostream>
#include <cmath>
#define H "The sum of "
#define B "from a to b is "
#define lit (1e-7)
using namespace std;
double sum_of_fun(double a,double b,double (*fun)(double));
int main()
{
double a,b,x;
cin>>a;
cin>>b;
cout<<H<<"sin(x) "<<B<<sum_of_fun(a,b,(*sin)(x))<<endl;
cout<<H<<"cos(x) "<<B<<sum_of_fun(a,b,(*cos)(x))<<endl;
cout<<H<<"exp(x) "<<B<<sum_of_fun(a,b,(*exp)(x))<<endl;
return 0;
}
double sum_of_fun(double a,double b,double (*fun)(double))
{
double times=(b-a)/lit,sum=0.;
int i;
for(i=0;i<=times;i++)
{
sum+=fun(a+i*lit)*lit;
}
return sum;
}

把你写的那什么 (*sin)(x) (*cos)(x) (*exp)(x) 这些都改成 sin, cos , exp 就可以了

当你需要函数指针的时候,直接写函数名字就可以

cout<<H<<"sin(x) "<<B<<sum_of_fun(a,b,(*sin)(x))<<endl;
cout<<H<<"cos(x) "<<B<<sum_of_fun(a,b,(*cos)(x))<<endl;
cout<<H<<"exp(x) "<<B<<sum_of_fun(a,b,(*exp)(x))<<endl;
这几句有误.