void Add(int x, int y)
{
printf("%d\n", x + y);
}
void Sub(int x, int y)
{
printf("%d\n", x - y);
}
void Mul(int x, int y)
{
printf("%d\n", x * y);
}
void Div(int x, int y)
{
printf("%d\n", x / y);
}
void meun()
{
printf("*******************************\n");
printf("**** 1.Add 2.Sub ****\n");
printf("**** 3.Mul 4.Div ****\n");
printf("**** 0.EXIT ****\n");
printf("*******************************\n");
}
void Col(int (*p)(int, int))
{
int x = 0;
int y = 0;
printf("请输入两个数值:》\n");
scanf("%d,%d", &x, &y);
p(x, y);
}
两种方法:
int main()
{
/*int input = 0;
int x = 0;
int y = 0;
第一种方法:
do
{
meun();
printf("请输入您的选择:》\n");
scanf("%d", &input);
int (*p[])(int, int) = { 0,Add ,Sub,Mul,Div };
int sz = sizeof(p) / sizeof(p[0]);
if (input>0 && input<=sz)
{
printf("请输入两个数值:》\n");
scanf("%d,%d", &x, &y);
p[input](x, y);
}
else if (input == 0)
{
printf("退出\n");
break;
}
else
{
printf("请重新选择\n");
}
第二种方法:
int input = 0;
do
{
meun();
printf("请输入您的选择:》\n");
scanf("%d", &input);
switch (input)
{
case 1:
Col(Add);
break;
case 2:
Col(Sub);
break;
case 3:
Col(Mul);
break;
case 4:
Col(Div);
break;
case 0:
printf("退出\n");
break;
default:
printf("请重新选择\n");
break;
}
} while (input);
return 0;
}