当调用的函数,参数,返回值类型个数相同时,可以运用函数指针数组,实现对不同函数的调用
#include<stdio.h>
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;
}
void menu()
{
printf("**********choose**********\n");
printf("*******1.Add 2.Sub*****\n");
printf("*******3.Mul 4.Div*****\n");
printf("********0.exit************\n");
}
int main(int argc, const char *argv[])
{
int input=0;
do{
menu();
int (*parr[5])(int ,int)={NULL,Add,Sub,Mul,Div};
int x=0;
int y=0;
int ret=0;
printf("请选择>");
scanf("%d",&input);
if(input>=1&&input<=4)
{
printf("请输入两个操作数>");
scanf("%d %d",&x,&y);
ret=(parr[input])(x,y);
printf("ret=%d\n",ret);
}
else if(0==input)
{
printf("退出程序\n");
break;
}
else{printf("输入有误,重新输入\n");}
}while(input);
return 0;
}