用代码实现一个简单计算器

简介: 用代码实现一个简单计算器

目录

😋前言

🫡实现思想

😏具体代码

😮‍💨代码一

🥳代码二


😋前言

计算器大家在生活学习中都接触过,是对于我们运算速度提升的一种很方便的工具。今天,我们就用C语言代码来实现一个简单计算器的功能。在这个过程中,我们会用到循环,函数,指针等一些知识,代码很简单,易理解,大家不用担心,可以很好的理解的。

🫡实现思想

需要设置一个菜单,提示如何操作

我们要可以多次计算,且可以退出计算程序。

我们要用函数将我们需要实现的功能封装起来。

我们要接收函数计算的结果,显示出来。

😏具体代码

😮‍💨代码一

int add(int x, int y)
{
  return x + y;
}
//减法
int sub(int x, int y)
{
  return x - y;
}
//乘法
int mull(int x, int y)
{
  return x * y;
}
//除法
int div(int x, int y)
{
  return x / y;
}
//菜单
void menu()
{
  printf("*****************************\n");
  printf("*****************************\n");
  printf("*****1:add         2:sub*******\n");
  printf("*****3:mull        4:div********\n");
  printf("*****************************\n");
  printf("*****************************\n");
}
int main()
{
  int input = 0;
  int x = 0;
  int y = 0;
  menu();
  //多次使用 当input==0时,停止
  do
  {
    printf("请选择:>");
    scanf("%d", &input);
    //根据input的值来选择要计算的方法
    switch (input)
    {
    case 0:
      printf("退出程序\n");
      break;
    case 1:
      printf("请输入:\n");
      scanf("%d %d", &x, &y);
      printf("%d\n", add(x, y));
      break;
    case 2:
      printf("请输入:\n");
      scanf("%d %d", &x, &y);
      printf("%d\n", sub(x, y));
      break;
    case 3:
      printf("请输入:\n");
      scanf("%d %d", &x, &y);
      printf("%d\n", mull(x, y));
      break;
    case 4:
      printf("请输入:\n");
      scanf("%d %d", &x, &y);
      printf("%d\n", div(x, y));
      break;
      //其他数都错误
    default:
      printf("输入错误,请重新选择\n");
      break;
    }
  } while (input);
  return 0;
}

到这就实现了计算器的功能,但是我们发现这里面的代码有些地方非常的冗余,出现的多组重复的代码,我们一旦要加功能进去,重复的代码就会更加多。

🥳代码二

int add(int x, int y)
{
  return x + y;
}
//减法
int sub(int x, int y)
{
  return x - y;
}
//乘法
int mull(int x, int y)
{
  return x * y;
}
//除法
int div(int x, int y)
{
  return x / y;
}
//菜单
void menu()
{
  printf("*****************************\n");
  printf("*****************************\n");
  printf("*****1:add         2:sub*******\n");
  printf("*****3:mull        4:div********\n");
  printf("*****************************\n");
  printf("*****************************\n");
}
int main()
{
  int input = 1;
  int x = 0;
  int y = 0;
  int ret = 0;
  menu();
  //函数指针数组
  //将函数的地址都作为一个指针放到arr数组中了
  //这就是一个转移表
  int (*arr[5])(int, int) = { NULL, add, sub, mull, div };
  //input为0退出 其他继续
  while (input)
  {
    printf("请选择:>");
    scanf("%d", &input);
    if (input <= 4 && input >= 1)
    {
      printf("请输入:");
      scanf("%d %d", &x, &y);
      //通过函数指针解引用找到函数求值赋给ret
      ret = (*arr[input])(x, y);
      printf("%d\n", ret);
    }
    else if (input == 0)
      printf("退出程序\n");
    else
      printf("输入错误,请重新输入\n");
  }
  return 0;
}

现在的代码就已经很简洁了,再想加功能,直接将加进来的函数指针放到arr数组中,代码也不会变得冗余,且容易增加。这里我们就是运用了函数指针数组的作用,做了一个转移表,将函数指针放到arr数组中,通过数组来找到函数。

目录
相关文章
|
8月前
|
存储 弹性计算 运维
简单计算器
【4月更文挑战第30天】
103 0
|
7月前
500行代码实现贪吃蛇(2)
500行代码实现贪吃蛇(2)
71 8
|
7月前
|
程序员 API 定位技术
500行代码实现贪吃蛇(1)
500行代码实现贪吃蛇(1)
63 4
|
8月前
|
C语言
猜数字游戏(详解+代码)
猜数字游戏(详解+代码)
291 1
|
8月前
|
Python
python实现斐波那契数列案例代码
python实现斐波那契数列递归实现斐波那契数列:
54 0
|
8月前
|
Java
java实现简单计算器
java实现简单计算器
|
8月前
|
Java 程序员
java实现简单计算器(二)
java实现简单计算器(二)
|
API 定位技术 C语言
贪吃蛇代码实现与剖析(C语言)(下)
贪吃蛇代码实现与剖析(C语言)(下)
148 0
|
编译器 C语言 C++
贪吃蛇代码实现与剖析(C语言)(上)
贪吃蛇代码实现与剖析(C语言)
113 0
|
编译器 API C语言
贪吃蛇代码实现与剖析(C语言)(中)
贪吃蛇代码实现与剖析(C语言)
124 0

热门文章

最新文章