#define _CRT_SECURE_NO_WARNINGS
#include
//方法1
enum Cal
{
EXIT,
ADD,
SUB,
MUL,
DIV
};
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");
}
void test()
{
int input = 0;
int x = 0;
int y = 0;
do
{
menu();
printf("请选择:>");
scanf("%d", &input);
printf("请输入两个操作数:>");
scanf("%d%d", &x, &y);
switch (input)
{
case ADD:
printf("%dn", Add(x, y));
break;
case SUB:
printf("%dn", Sub(x, y));
break;
case MUL:
printf("%dn", Mul(x, y));
break;
case DIV:
printf("%dn",Div(x, y));
break;
case EXIT:
printf("退出程序n");
break;
default:
printf("输入错误,请重新输入n");
}
} while (input);
}
int main()
{
test();
getchar();
}
//方法2 用函数指针数组
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;
int x = 0;
int y = 0;
int(*pfArr[5])(int x, int y) = { 0, Add, Sub, Mul, Div };
do
{
menu();
printf("请选择:>");
scanf("%d", &input);
if (input >= 1 && input <= 4)
{
printf("请选择两个操作数:>");
scanf("%d%d", &x, &y);
int ret = pfArr[input](x, y);
printf("%dn", ret);
}
else if (input == 0)
{
printf("退出程序n");
}
else
{
printf("选择错误,请重新选择n");
}
} while (input);
getchar();
}



