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

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

目录

😋前言

🫡实现思想

😏具体代码

😮‍💨代码一

🥳代码二


😋前言

计算器大家在生活学习中都接触过,是对于我们运算速度提升的一种很方便的工具。今天,我们就用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数组中,通过数组来找到函数。

目录
相关文章
|
7月前
|
存储 弹性计算 运维
简单计算器
【4月更文挑战第30天】
90 0
|
6月前
|
测试技术 C语言
数据结构学习记录——树习题—Tree Traversals Again(题目描述、输入输出示例、解题思路、解题方法C语言、解析)
数据结构学习记录——树习题—Tree Traversals Again(题目描述、输入输出示例、解题思路、解题方法C语言、解析)
47 1
|
7月前
|
Python
python实现斐波那契数列案例代码
python实现斐波那契数列递归实现斐波那契数列:
51 0
|
7月前
|
JavaScript 前端开发 数据库
输入输出举例及其代码实现
在计算机编程中,输入输出(Input/Output,简称I/O)是非常基础且关键的概念。输入是指程序从外部设备(如键盘、文件、网络等)获取数据,而输出则是程序将结果或信息发送到外部设备(如显示器、打印机、文件等)。下面将通过几个简单的例子,以及相应的代码实现,来展示不同编程语言中的输入输出操作。
132 0
|
7月前
|
Java
java实现简单计算器
java实现简单计算器
|
7月前
|
Java 程序员
java实现简单计算器(二)
java实现简单计算器(二)
|
算法 C语言
[C语言][典例详解]打印杨辉三角(找规律简单实现)
[C语言][典例详解]打印杨辉三角(找规律简单实现)
157 0
|
索引
力扣118杨辉三角:代码实现+注释详解+其它思考
力扣118杨辉三角:代码实现+注释详解+其它思考
86 0