点击蓝字

0d3672d5a9f2ffff3b1bf428274078c3.png

关注我们

1、实现逻辑

首先创建菜单(menu),把我们需要实现的功能打印到运行栏屏幕上。

当然以上都是属于最基本的计算,你当然还可以实现一些其它计算。例如:

位运算(按位与、按位或、按位异或)

左移操作符、右移操作符、取模、开平方等...

由于道理都是一样的只是 return 返回值就可以了在这里不再多述,也有些可以使用库函数直接引用即可像sqrt()、pow()等......

2、普通代码实现 

计算器⇲の普通代码实现如下⇩

#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
void menu()
{
  printf("|-------- 计算器 --------|\n");
  printf("|-------★ 1.Add ★------|\n");
  printf("|-------★ 2.Sub ★------|\n");
  printf("|-------★ 3.Mul ★------|\n");
  printf("|-------★ 4.Div ★------|\n");
  printf("|-------★ 0.Exit★------|\n");
}
double Add(double x, double y)
{
  return x + y;
}
double Sub(double x, double y)
{
  return x - y;
}
double Mul(double x, double y)
{
  return x * y;
}
double Div(double x, double y)
{
  return x / y;
}
int main(void)
{
  menu();
  double x = 0.0;
  double y = 0.0;
  double ret = 0.0;
  int input = 0;
  do
  {
    printf("请输入菜单界面(input):");
    scanf("%d", &input);
    if (input == 0)
    {
      printf("退出Exit!\n");
      break;
    }
    switch (input)
    {
      case 1:
        printf("请输入两个数字:");
        scanf("%lf %lf", &x, &y);
        ret = Add(x, y); 
        printf("ret = %.2lf\n", ret);
        break;
      case 2:
        printf("请输入两个数字:");
        scanf("%lf %lf", &x, &y);
        ret = Sub(x, y);
        printf("ret = %.2lf\n", ret);
        break;
      case 3:
        printf("请输入两个数字:");
        scanf("%lf %lf", &x, &y);
        ret = Mul(x, y);
        printf("ret = %.2lf\n", ret);
        break;
      case 4:
        printf("请输入两个数字:");
        scanf("%lf %lf", &x, &y);
        ret = Div(x, y);
        printf("ret = %.2lf\n", ret);
        break; 
      default:
        printf("你输入的数字错误,请重新输入!\n");
    }
  } while (1);
  return 0;
}

3、高级代码实现

计算器⇲の高级代码实现如下⇩

#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
void menu()
{
  printf("|-------- 计算器 --------|\n");
  printf("|-------★ 1.Add ★------|\n");
  printf("|-------★ 2.Sub ★------|\n");
  printf("|-------★ 3.Mul ★------|\n");
  printf("|-------★ 4.Div ★------|\n");
  printf("|-------★ 0.Exit★------|\n");
}
double Add(double x, double y)
{
  return x + y;
}
double Sub(double x, double y)
{
  return x - y;
}
double Mul(double x, double y)
{
  return x * y;
}
double Div(double x, double y)
{
  return x / y;
}
int main(void)
{
  menu();
  double(*p[5])(double, double) = { NULL, Add, Sub, Mul, Div };//函数指针数组!
  int input = 0;
  do
  {
    printf("请输入菜单界面上数字:");
    scanf("%d", &input);
    if (input >= 1 && input <= 4)
    {
      double x = 0.0, y = 0.0;
      printf("请输入两个数字:");
      scanf("%lf %lf", &x, &y);
      double ret = (*p[input])(x, y);//下标引用
      printf("ret = %.2lf\n", ret);
      printf("-------\n");
    }
    else if (input == 0)
    {
      printf("Exit退出\n");
      break;
    }
    else
    {
      printf("你输入数字不在范围之内,请重新输入!\n");
    }
  } while (input);
  return 0;
}

4、运行结果

加法运行结果↓

0e61107479badfeaf43aafb09817b1c6.png

减法运行结果↓

78e66945e6fea5b0ee47d5622085c40c.png

乘法运行结果↓

414bbfc5fcfde3ad66c57e7bfa892ff6.png

除法运行结果↓

bbf33d457c9025cb087258e21a79fe7d.png

输入错误↓

20505a22629109bbe0283c60cb515649.png

5、最后

实现C语言这种计算器简易的是比较容易的,在这里我们使用的普通代码和高级代码来实现本计算器,初学者可能会用到普通代码的实现,但是如果你学过函数指针数组你就可以用这种高级代码的实现方法来做了。

*声明:本文于网络整理,版权归原作者所有,如来源信息有误或侵犯权益,请联系我们删除或授权事宜。

0cc9df874ab7244271f256bf99349136.png

a642f16db70d46d6aab347b770d53a93.gif

戳“阅读原文”我们一起进步

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐