C++-练习-53

题目:

设计一个名为calculate()的函数,它接受两个double值和一个指向函数的指针,而被指向的函数接受两个double参数,并返回一个double值。calculate()函数的类型也是double,并返回被指向的函数使用calculate()的两个double参数计算得到的值。例如,假设add()函数的定义如下:

double add(double x,double y)

{

        return x + y;

}

则下述代码中的函数嗲用将导致calculate()把2.5和10.4传递给add()函数,并返回add()的返回值

double q = calculate(2.5,10.4,add);

请编写一个程序,它调用上述两个函数和至少另一个与add()类似的函数。该程序使用循环让用户成对地输入数字。对于没对数字,程序都使用calculate()来调用add()和至少一个其他的函数。如果可以尝试创建一个指针数组,其中的指针指向add()样式的函数,并编写一个循环,使用这些指针连续让calculate()调用这些函数。提示: 下面是声明这种指针数组的样式,其中包含三个指针:

double (*pf[3])(double,double);

可以采用数组初始化语法,并将函数名作为地址来初始化这样的数组。

源代码:

#include <iostream>

double add(double x, double y);
double sub(double x, double y);
double mul(double x, double y);
double calculate(double x, double y, double (*ptr)(double, double));


int main()
{
    using namespace std;
    double (*pf[3])(double, double) = { add,sub,mul };
    for (int i = 0; i < 3; i++)
    {
        cout << "第 " << i + 1 << " 次调用函数返回数值: " << calculate(2.5, 10.4, pf[i]) << endl;
    }
    return 0;
}



double add(double x, double y)
{
    return x + y;
}
double sub(double x, double y)
{
    return x - y;
}
double mul(double x, double y)
{
    return x * y;
}
double calculate(double x, double y, double (*ptr)(double, double))
{
    return  (*ptr)(x, y);
}

演示效果: 


如果朋友你感觉文章的内容对你有帮助,可以点赞关注文章和专栏以及关注我哈,嘿嘿嘿我会定期更新文章的,谢谢朋友你的支持哈

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

是小天才哦

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值