运营商-数据结构 函数指针

问题描述

数据结构 函数指针

实现计算器的加法、减法、乘法和除法。使用一个命令行参数为您的选择,和2个数字。你使用下面的数组来赋值操作符函数。

int add(int x, int y);
int sub(int x, int y);
int mul(int x, int y);
int div(int x, int y);
int (*pf[4])(int, int) = { add, sub, mul, div };

数据结构:函数指针数组
输入:选择运营商的数量(1,2,3,或4),
操作数的2个整数
输出:操作结果

解决方案

 #include <iostream>
using namespace std;
int add(int x,int y){
    return x+y;
}
int sub(int x,int y){
    return x-y;
}
int mul(int x,int y){
    return x*y;
}
int div(int x,int y){
    return x/y;
}
int main(){
    int (*pf[4])(int, int) = { add, sub, mul, div };
    while(true){
        cout<<"0. add"<<endl;
        cout<<"1. sub"<<endl;
        cout<<"2. mul"<<endl;
        cout<<"3. div"<<endl;
        cout<<"4. exit"<<endl;

        cout<<"Select Operation :";
        int opeNum;
        cin>>opeNum;
        if(opeNum==4){
            return 0;
        }
        cout<<"Input 2 operand :";
        int a,b;
        cin>>a>>b;
        cout<<"Result = "<<pf[opeNum](a,b)<<endl;
    }

}

解决方案二:

仅供参考!
#include
#include

int add(int a ,int b)
{
return a + b;
}
int sub(int a ,int b)
{
return a - b;
}
int mul(int a ,int b)
{
return a * b;
}
int dive(int a ,int b)
{
if (b == 0)
exit(1);
else
return a / b;
}
int (*pf[4])(int, int) = { add, sub, mul, dive };

int main()
{
int ch,x,y;
scanf("%d",&ch);
scanf("%d %d",&x,&y);
if (ch !=4)
printf("%dn",(*pf[ch])(x,y));
else
exit(0);
return 0;
}

时间: 2024-08-06 21:26:26

运营商-数据结构 函数指针的相关文章

正则表达式判断所填入号码的运营商js代码修改版_正则表达式

功能:判断所填入号码的运营商 该函数按照以下标准实现 移动:134-139 151 188 联通:130-132 156 电信:133 189 155 关于这些号段之外的号码查询将提示暂无数据信息 同时由于携号入网的实施导致号码的运营商变化且存在不确定性 本程序只做为正则表达式学习交流使用,可随意传播,但是由该程序造成的错误,作者概不负责! 复制代码 代码如下: <html> <script language="javascript" type="text/

正则表达式判断所填入号码的运营商js代码修改版

功能:判断所填入号码的运营商 该函数按照以下标准实现 移动:134-139 151 188 联通:130-132 156 电信:133 189 155 关于这些号段之外的号码查询将提示暂无数据信息 同时由于携号入网的实施导致号码的运营商变化且存在不确定性 本程序只做为正则表达式学习交流使用,可随意传播,但是由该程序造成的错误,作者概不负责! 复制代码 代码如下: <html> <script language="javascript" type="text/

日志服务+函数服务实战(1): 访问日志地域、运营商实时分析

概述 ETL(Extract-Transform-Load)用来描述将数据从来源端经过抽取(Extract).转换(Transform).加载(Load)至目的端的过程. 传统ETL是构建数据仓库的重要一环,用户从数据源抽取出所需的数据,经过数据清洗,最终按照预先定义好的数据仓库模型,将数据加载到数据仓库中去. 在今天,随着业务需求的日益增加,不同系统的相互大批量数据交互也已成为常态.数据在不同系统中流动起来,有助于充分发掘日志大数据的价值. 在云上,AWS Glue是一个功能完备的ETL产品,

声明函数指针并实现回调

程序员常常需要实现回调.本文将讨论函数指针的基本原则并说明如何使用函数指针实现回调.注意这里针对的是普通的函数,不包括完全依赖于不同语法和语义规则的类成员函数(类成员指针将在另文中讨论). 声明函数指针 回调函数是一个程序员不能显式调用的函数:通过将回调函数的地址传给调用者从而实现调用.要实现回调,必须首先定义函数指针.尽管定义的语法有点不可思议,但如果你熟悉函数声明的一般方法,便会发现函数指针的声明与函数声明非常类似.请看下面的例子: void f():// 函数原型 上面的语句声明了一个函数

C++指针探讨(三)成员函数指针

C语言的指针相当的灵活方便,但也相当容易出错.许多C语言初学者,甚至C语言老鸟都很容易栽倒在C语言的指针下.但不可否认的是,指针在C语言中的位置极其重要,也许可以偏激一点的来说:没有指针的C程序不是真正的C程序. 然而C++的指针却常常给我一种束手束脚的感觉.C++比C语言有更严格的静态类型,更加强调类型安全,强调编译时检查.因此,对于C语言中最容易错用的指针,更是不能放过:C++的指针被分成数据指针,数据成员指针,函数指针,成员函数指针,而且不能随便相互转换.而且这些指针的声明格式都不一样:

成员函数指针与高性能的C++委托 (Member Function Pointers and the Fastest Possible C++ Delegates)

标准C++中没有真正的面向对象的函数指针.这一点对C++来说是不幸的,因为面向对象的指针(也叫做"闭包(closure)"或"委托(delegate)")在一些语言中已经证明了它宝贵的价值.在Delphi (Object Pascal)中,面向对象的函数指针是Borland可视化组建库(VCL,Visual Component Library)的基础.而在目前,C#使"委托"的概念日趋流行,这也正显示出C#这种语言的成功.在很多应用程序中,&qu

objective-c中的@selector()和 c /c++的函数指针

先看tomcat里用到的代码: //然后开始动画 //把图片放到animationImages,接受数组参数 self.tom.animationImages = arrayImage; //设置时间间隔,81张图,图多就播的时间稍微长,否则短 self.tom.animationDuration = arrayImage.count * 0.074; //设置重复次数 self.tom.animationRepeatCount = 1; //开始动画 [self.tom startAnimat

WordPress显示评论者IP、归属地及运营商信息解决方法

①.在线API 在线查询IP信息的API有很多,比如淘宝.百度和新浪都有IP信息查询的API接口,地址如下:     百度:http://apistore.baidu.com/microservice/iplookup?ip=114.114.114.114     淘宝:http://ip.taobao.com/service/getIpInfo.php?ip=114.114.114.114     新浪:http://int.dpool.sina.com.cn/iplookup/iplooku

忽略大数据 运营商将损失诸多谋利机遇

据国外http://www.aliyun.com/zixun/aggregation/31646.html">媒体报道,市场研究机构Ovum日前表示,预测和减少客户流失.增进用户忠诚度.增值和交叉销售产品及个性化服务是电信运营商可以利用大数据分析谋取商业利益的所有关键领域.然而,运营商至今并未对其善加利用,其中的一个主要原因是传统的绊脚石电信运营商的组织结构和数据结构. Ovum在其最新开展的一项电信运营商如何利用客户数据牟利的调查中发现,成功执行一项大数据分析项目需要灵活的业务结构和逻辑