问题描述
- 数据结构 函数指针
-
实现计算器的加法、减法、乘法和除法。使用一个命令行参数为您的选择,和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