題目:
標(biāo)準(zhǔn)庫提供了三角函數(shù)sin()、cos()和tan(),這些函數(shù)都帶有一個double參數(shù),返回一個double值。要使用它們,需要包含標(biāo)準(zhǔn)庫頭文件<cmath>。編寫一個函數(shù)calc(),它帶有兩個參數(shù):一個double值和一個指向三角函數(shù)的指針,返回把函數(shù)應(yīng)用于double值的結(jié)果。編寫一個程序,測試所編寫的函數(shù)。如果該函數(shù)通過了測試,就建立一個函數(shù)指針數(shù)組,存儲這個三個三角函數(shù),并測試它們。
答案:
#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);
}
運行結(jié)果:
0.909297
-0.416147
-2.18504