热门

最新

红包

立Flag

投票

同城

我的

发布
dchdd
dchdd
5 年前
truedchdd


int cal(int(*f)(),int,int);
//返回指针函数(*f)(int,int),即:用cal函数去调用多个函数;(*f)是为了左值




#include <stdio.h>


int add(int,int);
int sub(int,int);
int mul(int,int);

int cal(int(*f)(),int,int);//返回指针函数(*f)(int,int),即:用cal函数去调用多个函数;(*f)是为了左值

int (*select(char))();

int add(int n1,int n2){
return n1+n2;
}

int sub(int n1,int n2){
return n1-n2;
}

int mul(int a,int b){
return a*b;
}

int cal(int(*f)(),int n1,int n2){
return (f)(n1,n2);
}

int (*select(char o))(){
switch(o){
case'+':return add;
case'-':return sub;
case'*':return mul;
}
}


int main(){
int x,y;
char o;
printf("请输入算式,例1-2\n");
scanf("%d%c%d",&x,&o,&y);

if ((o=='+')||(o=='-')||(o=='*')){
int (*f)(int,int);
f=select(o);
printf("%d%c%d=%d",x,o,y,cal(f,x,y));
}
else
{printf("未规范输入,或暂不支持此运算符");}
}

CSDN App 扫码分享
分享
3
1
打赏
  • 复制链接
  • 举报
下一条动态
立即登录