#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 eum()
{
printf("*******************************\n");
printf("***1. add 2. sub **********\n");
printf("***3. mul 4. div **********\n");
printf("*** 0. exit **********\n");
printf("*******************************\n");
}
int main()
{
int input = 0;
int x = 0;
int y = 0;
int ret = 0;
//函数指针数组 -- > 转移表
int (* pf[5])(int ,int) = {NULL,Add,Sub,Mul,Div};
//int (*) (int, int)函数指针类型
do
{
eum();
printf("请选择:>");
scanf("%d", &input);
if (input >= 1 && input <= 4)
{
printf("请输入两个操作数:>");
scanf("%d %d", &x, &y);
ret = (*pf[input])(x, y);
printf("%d\n", ret);
}
else if (input == 0)
{
printf("退出程序\n");
}
else
{
printf("输入错误,重新输入\n");
}
} while (input);
return 0;
}
09-07