题目:
标准库提供了三角函数sin()、cos()和tan(),这些函数都带有一个double参数,返回一个double值。要使用它们,需要包含标准库头文件<cmath>。编写一个函数calc(),它带有两个参数:一个double值和一个指向三角函数的指针,返回把函数应用于double值的结果。编写一个程序,测试所编写的函数。如果该函数通过了测试,就建立一个函数指针数组,存储这个三个三角函数,并测试它们。
答案:
#include <iostream>
#include <cmath>
using std::cout;
using std::endl;
double calc(const double& d, double(*pfun)(double));
void main() {
double(*pfun[3])(double) = {sin, cos, tan};
for (int i=0; i<(sizeof pfun/sizeof pfun[0]); i++)
cout << calc(2.0, pfun[i]) << endl;
}
double calc(const double& d, double(*pfun)(double)) {
return pfun(d);
}
运行结果:
0.909297
-0.416147
-2.18504