#define _CRT_SECURE_NO_WARNINGS
#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("*************************\n");
printf("******1.Add 2.Sub*****\n");
printf("******3.Mul 4.Div*****\n");
printf("****** 0.exit ********\n");
printf("*************************\n");
}
int calc(int(*pfun)(int, int)) //函数指针作为参数,pfun将会接收到形参(函数)的地址
{
int x = 0;
int y = 0;
printf("请输入两个要参与计算的数>:");
scanf("%d %d", &x, &y);
return pfun(x, y);
}
int main()
{
menu();
int input = 0;
do
{
printf("请输入序号>:");
scanf("%d", &input);
int ret = 0;
switch (input)
{
case 1:
ret = calc(Add);
printf("ret=%d\n", ret);
break;
case 2:
ret = calc(Sub);
printf("ret=%d\n", ret);
break;
case 3:
ret = calc(Mul);
printf("ret=%d\n", ret);
break;
case 4:
ret = calc(Div);
printf("ret=%d\n", ret);
break;
case 0:
break;
default:
printf("选择错误\n");
break;
}
} while (input);
system("pause");
return 0;
}
return 0;
}