该计算器可以用于“加减乘除” 运算:
代码如下:
#include <stdio.h>
#include <stdlib.h>
enum OP //枚举各个功能
{
EXIT,
ADD,
SUB,
MUL,
DIV
};
int _add(int a, int b) //实现加法函数
{
return a + b;
}
int _sub(int a, int b) //实现减法函数
{
return a - b;
}
int _mul(int a, int b) //实现乘法行数
{
return a*b;
}
int _div(int a, int b) //实现除法函数
{
if (b == 0)
{
printf("除数位0\n");
}
return a / b;
}
void menu() //菜单函数,用于实现菜单栏
{
printf("*************************\n");
printf("**** 1.add 2.sub ****\n");
printf("**** 3.mul 4.div ****\n");
printf("******** 0.exit *********\n");
printf("*************************\n");
}
int(*pfun[5])(int, int) = {0, _add, _sub, _mul, _div}; //定义了一个数组指针型函数
int main()
{
int input = 1;
int num1 = 0;
int num2 = 0;
int ret = 0;
while (input) //选择要执行的操作
{
menu(); //打印菜单
printf("请选择>:");
scanf("%d", &input);
printf("请输入两个整数操作数>:");
scanf("%d%d", &num1, &num2);
if (input >= 1 && input <= 4)
{
ret = pfun[input](num1, num2); //调用数组指针函数,进行相应的运算操作
}
else if (input == 0) //退出程序
{
exit(EXIT_FAILURE);
}
else
{
printf("选择错误\n"); //选择是错误的
}
printf("ret = %d\n", ret); //输出计算的结果
}
return 0;
}
在主函数while循环中也可以用switch语句进行相应的操作
代码如下:
switch (input)
{
case 1:
ret = _add(num1, num2);
break;
case 2:
ret = _sub(num1, num2);
break;
case 3:
ret = _mul(num1, num2);
break;
case 4:
ret = _div(num1, num2);
break;
case 0:
exit(EXIT_FAILURE);
break;
default:
printf("选择错误,请重新选择.\n");
break;
}