首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

帮小弟我修改一下、下面的程序

2012-03-02 
帮我修改一下、下面的程序#includeiostreamvoidcal(double,double,double(*pt)(double,double))doublead

帮我修改一下、下面的程序
#include   <iostream>
void   cal   (double   ,double   ,   double   (*pt)(double   ,double   ));
double   add   (double   ,   double   );
using   namespace   std;
int   main()
{
double   n   ,   m;
cout   < < "Enter   n   :   ";
cin   > >   n;
cout < <   "Enter   m   :   ";
cin   > >   m;
cal(n,m,add);
return   0;
}


double   add   (double   x,double   y)
{
return   x   +   y;
}

void   cal   (double   x   ,double   y   ,   double   (*pt)(double   ,double   ))
{

cout   < < "x   and   y   :     "
< <   (*pt)(x,y) < <endl;


}


要求
在上面这个程序的基础上修改成  
创建一个指针数组,其中的指针指向add()样式,并编写一个循环,使用这些指针连续让cal()调用这些函数。   包含3个指针的指针数组方式  
        double   (*pt[3])(double   ,   double   ,   )


请大大们帮我改一下   数组指针就设置为3个吧
谢谢

[解决办法]
typedef double (*FUNCTION)(double ,double );
FUNCTION funs[3] = {add, mul, div};
void cal (double x ,double y , FUNCTION * funs)
提示这么多应该够了。

[解决办法]
typedef double (*Func)(double, double);
请问一下 这个语句什么意思?
是否一定要用这个语句?
===>
定义一个函数类型, 该类函数有两个double参数, 返回值类型是double.
这样定义是为了方便, 容易理解.

比如
void cal (double ,double , Func pt)中pt参数是一个Func类型, 即上面
定义的函数类型double(*)(double, double). 它与
void cal (double ,double , double(*pt)(double,double))是一样的, 不过看起来要
好懂多了。

又比如定义
Func funcArray[numFuncs]定义了一个numFuncs大小的数组, 数组的每个元数都是Func.
它与
double (*FuncArray[numFuncs])(double , double)的意思是一样的, 不过要比它清楚明白得
多.


热点排行