实现简易计算器

该计算器可以用于“加减乘除” 运算:

代码如下:

#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;
}

你可能感兴趣的:(c)