#define _CRT_SECURE_NO_WARNINGS 1
#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 input = 0;
do{
menu();
int x = 0;
int y = 0;
int ret = 0;
printf("请输入一个数\n");
scanf("%d", &input);
if (input >= 1 && input <= 4){//函数的返回类型必须是相同的
int(*pfarr[5])(int, int) = { NULL, add, sub, mul, div };
//函数指针数组有五个元素,参数是int 返回类型也是int
printf("请输入两个数值\n");
scanf("%d %d", &x, &y);
ret = pfarr[input](x, y);//调用函数指针数组,中的元素
printf("%d\n", ret);
}
else if (input == 0){
break;
}
else printf("输入错误\n");
} while (input);
return 0;
}
07-14
128