点击蓝字

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

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐