baybaye
baybaye
采纳率70%
2016-03-05 07:40 阅读 1.5k
已采纳

数据结构 函数指针

10

实现计算器的加法、减法、乘法和除法。使用一个命令行参数为您的选择,和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个整数
输出:操作结果

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 复制链接分享

2条回答 默认 最新

  • 已采纳
    u013596119 u52983610 2016-03-05 08:09
     #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;
        }
    
    
    }
    
    点赞 1 评论 复制链接分享
  • bealing xSeeker~ 2016-03-05 08:04

    仅供参考!
    #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("%d\n",(*pf[ch])(x,y));
    else
    exit(0);
    return 0;
    }

    点赞 评论 复制链接分享