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;
}
void test()
{
int input = 0;
int x = 0;
int y = 0;
do
{
menu();
printf("请输入:");
scanf("%d", &input);
int (*parr[])(int, int) = { 0,Add,Sub,Mul,Div };//定义函数指针数组
if (input >= 1 && input <= 5)
{
printf("请输入两个数:");
scanf("%d%d", &x, &y);
int ret = parr[input](x, y);//输入input 则在函数指针数组选择计算方式
printf("%d\n", ret);
printf("\n");
}
else if (input == 0)
{
printf("退出\n");
break;
}
else
{
printf("输入错误\n");
}
} while (input);
}
int main()
{
test();
return 0;
}
C语言实现简单的计算器(函数指针数组的方法)
于 2022-10-15 14:59:57 首次发布