写一个计算器(C语言版本),可以求出:整数的加,减,乘,除四则运算

简介: 写一个计算器(C语言版本),可以求出:整数的加,减,乘,除四则运算

写一个计算器(C语言版本),可以求出:整数的加,减,乘,除四则运算!


对于求出整数的加减乘除问题,我想大家现如今看见笔者此篇博文时候!大多都已经能够正确写出准确的代码来求整数的加减乘除了!其实对于计算器,并不仅仅只限于加减乘除,还有其他的数值运算类型,由于笔者能力所限制,暂时不做过多的讲述!


下面请看笔者对于:写一个计算器(C语言版本),可以求出:整数的加,减,乘,除四则运算!


代码的书写过程详解!


1.对于一个小游戏,我们需要一个菜单,来指引我们进行简单的输入!


因此,打印菜单就是第一要务!其实对于菜单,并没有多么的复杂化,只要很简单的小小几步,就能书写出来,下面是笔者所写的菜单代码!


#include <stdio.h>
void menu()
{
  printf("***************************\n");
  printf("***** 1.add    2. sub  ****\n");
  printf("***** 3.mul    4. div  ****\n");
  printf("*****      0.exi       ****\n");
  printf("***************************\n");
}
int main()
{
  menu();
  return 0;
}


上述代码段,定义了一个menu函数来打印菜单


下面是笔者的运转结果!符合我们的预期,因此简简单单的菜单就已经打印出来了!


0a2653c851af460fa595bd959398a8f1.png


2.在main 函数里面,书写出简单的代码需求:


int main()
{
  menu();
  int input = 0;   
//定义input为菜单上面的选择数字
  int x = 0;
  int y = 0;
//输入想要计算的数字
  int ret = 0;
  printf("请选择 : 》");
  scanf_s("%d", &input);
  printf("请输入两个操作数:》");
  scanf_s("%d %d", &x, &y);
  return 0;
}


上述代码段,是主要的方向,下面,对于输出入input进行简单的选择!


do
  {
  menu();
  printf("请选择:>");
  scanf("%d", &input);
  switch (input)
  {
  case 1:
    ret = Add(x, y);
    printf("%d\n", ret);
    break;
  case 2: 
    ret = Sub(x, y);
    printf("%d\n", ret);
    break;
  case 3:
    ret = Mul(x, y);
    printf("%d\n", ret);
    break;
  case 4:
    ret = Div(x, y);
    printf("%d\n", ret);
    break;
  case 0:
    printf("退出计算器\n");
    break;
  default:
    printf("选择错误\n");
    break;
  }
  } while (input);


上述代码段中,用了do  while() 循环,还有switch....case; break;选择语句穿插在其中;所以使得结构更加完整!


3.下面笔者来对加减乘除四个运算,来定义函数!


int Add(int x, int y)
{
  return x + y;
}
int Sub(int x, int y)
{
  return x - y;
}
int Mul(int x, int y)
{
  return x * y;
}
int Div(int x, int y)
{
  return x / y;
}


4.上述代码段中,笔者用函数的写法,来定义了分别对应的加减乘除函数!


上述代码合起来就是:


int Add(int x, int y)
{
  return x + y;
}
int Sub(int x, int y)
{
  return x - y;
}
int Mul(int x, int y)
{
  return x * y;
}
int Div(int x, int y)
{
  return x / y;
}
#include <stdio.h>
void menu()
{
  printf("***************************\n");
  printf("***** 1.add    2. sub  ****\n");
  printf("***** 3.mul    4. div  ****\n");
  printf("*****      0.exit      ****\n");
  printf("***************************\n");
}
int main()
{
  //menu();
  int input = 0;
  //定义input为菜单上面的选择数字
  int x = 0;
  int y = 0;
  //输入想要计算的数字
  int ret = 0;
  do
  {
  menu();
  printf("请选择 : 》");
  scanf_s("%d", &input);
  printf("请输入两个操作数:》");
  scanf_s("%d %d", &x, &y);
  switch (input)
  {
  case 1:
    ret = Add(x, y);
    printf("%d\n", ret);
    break;
  case 2: 
    ret = Sub(x, y);
    printf("%d\n", ret);
    break;
  case 3:
    ret = Mul(x, y);
    printf("%d\n", ret);
    break;
  case 4:
    ret = Div(x, y);
    printf("%d\n", ret);
    break;
  case 0:
    printf("退出计算器\n");
    break;
  default:
    printf("选择错误\n");
    break;
  }
  } while (input);
  return 0;
}


因此上述代码合起来便能运算出来结果!


6de278e6d6694ce5bb08e7e842b7e74b.png


上述代码为笔者所运行出来的结果:在此笔者也能清晰的看出来,输入8已经超过了菜单的……


但是又出现了“请输入两个操作数”,所以出现了,错误!


因此,就是,需要进行点更改:


5.更改后的代码为:


do
  {
    menu();
    printf("请选择:>");
    scanf_s("%d", &input);
    switch (input)
    {
    case 1:
    printf("请输入2个操作数:>");
    scanf_s("%d %d", &x, &y);
    ret = Add(x, y);
    printf("%d\n", ret);
    break;
    case 2: 
    printf("请输入2个操作数:>");
    scanf_s("%d %d", &x, &y);
    ret = Sub(x, y);
    printf("%d\n", ret);
    break;
    case 3:
    printf("请输入2个操作数:>");
    scanf_s("%d %d", &x, &y);
    ret = Mul(x, y);
    printf("%d\n", ret);
    break;
    case 4:
    printf("请输入2个操作数:>");
    scanf_s("%d %d", &x, &y);
    ret = Div(x, y);
    printf("%d\n", ret);
    break;
    case 0:
    printf("退出计算器\n");
    break;
    default:
    printf("选择错误\n");
    break;
    }
  } while (input);


上述的代码运算结果为:


12c3b7f3f8814309a195c64f051d4445.png


由上述的代码跟运转结果可以看出:每次都输入了两句……


printf("请输入2个操作数:>");
scanf_s("%d %d", &x, &y);

显得过于复杂!


6.因此,总的代码为:(运行结果没有错误)!


int Add(int x, int y)
{
  return x + y;
}
int Sub(int x, int y)
{
  return x - y;
}
int Mul(int x, int y)
{
  return x * y;
}
int Div(int x, int y)
{
  return x / y;
}
#include <stdio.h>
void menu()
{
  printf("***************************\n");
  printf("***** 1.add    2. sub  ****\n");
  printf("***** 3.mul    4. div  ****\n");
  printf("*****      0.exit      ****\n");
  printf("***************************\n");
}
int main()
{
  //menu();
  int input = 0;
  //定义input为菜单上面的选择数字
  int x = 0;
  int y = 0;
  //输入想要计算的数字
  int ret = 0;
  /*printf("请选择 : 》");
  scanf_s("%d", &input);
  printf("请输入两个操作数:》");
  scanf_s("%d %d", &x, &y);*/
  do
  {
    menu();
    printf("请选择:>");
    scanf_s("%d", &input);
    switch (input)
    {
    case 1:
    printf("请输入2个操作数:>");
    scanf_s("%d %d", &x, &y);
    ret = Add(x, y);
    printf("%d\n", ret);
    break;
    case 2: 
    printf("请输入2个操作数:>");
    scanf_s("%d %d", &x, &y);
    ret = Sub(x, y);
    printf("%d\n", ret);
    break;
    case 3:
    printf("请输入2个操作数:>");
    scanf_s("%d %d", &x, &y);
    ret = Mul(x, y);
    printf("%d\n", ret);
    break;
    case 4:
    printf("请输入2个操作数:>");
    scanf_s("%d %d", &x, &y);
    ret = Div(x, y);
    printf("%d\n", ret);
    break;
    case 0:
    printf("退出计算器\n");
    break;
    default:
    printf("选择错误\n");
    break;
    }
  } while (input);
  return 0;
}


但是运转结果却是没有出现错误!只不过就是代码感觉不是很合适,因此需要进行简单的简化!


因为,笔者目前已经初步接触函数指针数组,所以可以进行简单的用函数指针来书写!


有兴趣的读者,请参考一下,笔者的下篇博文,下篇博文,将会进行详细的讲解!


相关文章
|
7月前
|
C语言
【C语言刷题每日一题#牛客网BC6】输入三个整数,输出第二个整数
【C语言刷题每日一题#牛客网BC6】输入三个整数,输出第二个整数
|
6月前
|
前端开发 C语言
C语言04---第一个HelloWorld(vc版本)
C语言04---第一个HelloWorld(vc版本)
|
7月前
|
C语言
C语言:从键盘读入三个整数,按从大到小输出
C语言:从键盘读入三个整数,按从大到小输出
|
7月前
|
存储 C语言
【C语言刷题系列】求一个数组中两个元素a和b的和最接近整数m
【C语言刷题系列】求一个数组中两个元素a和b的和最接近整数m
|
7月前
|
C语言
【C语言刷题每日一题】——求1到100中包含数字9的整数的个数
【C语言刷题每日一题】——求1到100中包含数字9的整数的个数
|
7月前
|
C语言
【C语言刷题系列】交换整数的奇数位和偶数位
【C语言刷题系列】交换整数的奇数位和偶数位
|
7月前
|
存储 C语言
【C语言进阶篇】整数在内存的存储——原码、反码、补码
【C语言进阶篇】整数在内存的存储——原码、反码、补码
|
7月前
|
C语言
【C语言刷题系列】计算整数的二进制位中1的个数 (三种方式)
【C语言刷题系列】计算整数的二进制位中1的个数 (三种方式)
|
7月前
|
C语言
C语言-----计算两个int(32位)整数m和n的二进制表达中,有多少个位(bit)不同?
C语言-----计算两个int(32位)整数m和n的二进制表达中,有多少个位(bit)不同?
|
7月前
|
C语言
C语言----获取一个整数二进制序列中所有的偶数位和奇数位,分别打印出二进制序列
C语言----获取一个整数二进制序列中所有的偶数位和奇数位,分别打印出二进制序列