#include<stdio.h>
void menu() {//菜单打印
printf("***********************\n");
printf("*****1.Add 2.Sub******\n");
printf("*****3.Mul 4.Div******\n");
printf("***** 0.exit ******\n");
printf("***********************\n");
}
//列出加减乘除法
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 x = 0;
int y = 0;
int tmp = 0;
do {
int input = 0;
menu();
printf("请输入目标:");
int (*Parr[])(int, int) = { NULL,Add,Sub,Mul,Div };//函数指针数组的方式解决
//称为转移表
scanf("%d", &input);//输入
if (input >= 1 && input <= 4) {
printf("请输入两个操作数:");
scanf("%d %d", &x, &y);
tmp=Parr[input](x, y);
printf("结果为:%d\n", tmp);
}
else if(input==0){
printf("退出程序!");
}
else {
printf("输入错误,请重新输入!");
}
} while (1);
return 0;
}