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