#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
//函数指针数组 – 存放函数指针的数组
//int Abb(int x, int y)
//{
// return x + y;
//}int Acc(int x, int y)
//{
// return x – y;
//}int Add(int x, int y)
//{
// return x * y;
//}int Aee(int x, int y)
//{
// return x / y;
//}
//int main()
//{
// int a = 9;
// int b = 3;
// int i = 0;
// int (*parr[4])(int, int) = { Abb,Acc,Add,Aee };//都是int ()(int,int)类型的
// for (i = 0; i < 4; i++)
// {
// printf("%d\\n", parr[i](a, b));
// }
// return 0;
//}
//转移表
void maen()
{
printf("****************1.加法运算****************\\n");
printf("****************2.减法运算****************\\n");
printf("****************3.乘法运算****************\\n");
printf("****************4.除法运算****************\\n");
printf("****************0.退出运算****************\\n");
}
int Abb(int x, int y)
{
return x + y;
}int Acc(int x, int y)
{
return x – y;
}int Add(int x, int y)
{
return x * y;
}int Aee(int x, int y)
{
return x / y;
}
int main()
{
int a = 0;
int b = 0;
int c = 0;
int (*parr[4])(int, int) = { Abb,Acc,Add,Aee };
do
{
maen();
printf("请选择:");
scanf("%d", &c);
if (c == 0)
{
printf("退出运算\\n");
}
else if (c > 1 && c < 5)
{
printf("请输入两个数字:");
scanf("%d %d", &a, &b);
printf("%d\\n", parr[c – 1](a, b));
}
else
{
printf("超出范围,请重新选择\\n");
}
} while (c);
return 0;
}
/*case 1:
printf("请输入两个数字:");
scanf("%d %d", &a, &b);
printf("%d\\n", parr[c – 1](a, b));
break;
case 2:
printf("请输入两个数字:");
scanf("%d %d", &a, &b);
printf("%d\\n", parr[c – 1](a, b));
break;
case 3:
printf("请输入两个数字:");
scanf("%d %d", &a, &b);
printf("%d\\n", parr[c – 1](a, b));
break;
case 4:
printf("请输入两个数字:");
scanf("%d %d", &a, &b);
printf("%d\\n", parr[c – 1](a, b));
break;*/
//可以简化一下上面内容

