2 baybaye baybaye 于 2016.03.05 15:40 提问

数据结构 函数指针

实现计算器的加法、减法、乘法和除法。使用一个命令行参数为您的选择,和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
u013596119   Rxr 2016.03.05 16: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;
    }


}
baybaye
baybaye 谢谢
接近 2 年之前 回复
bealing
bealing   Rxr 2016.03.05 16: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;
}

baybaye
baybaye 谢谢
接近 2 年之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!