关于函数指针及函数指针数组的练习

关于函数指针及函数指针数组的练习

题目:
标准库提供了三角函数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

你可能感兴趣的:(关于函数指针及函数指针数组的练习)