写一个计算器(C语言版本),可以求出:整数的加,减,乘,除四则运算!
对于求出整数的加减乘除问题,我想大家现如今看见笔者此篇博文时候!大多都已经能够正确写出准确的代码来求整数的加减乘除了!其实对于计算器,并不仅仅只限于加减乘除,还有其他的数值运算类型,由于笔者能力所限制,暂时不做过多的讲述!
下面请看笔者对于:写一个计算器(C语言版本),可以求出:整数的加,减,乘,除四则运算!
代码的书写过程详解!
1.对于一个小游戏,我们需要一个菜单,来指引我们进行简单的输入!
因此,打印菜单就是第一要务!其实对于菜单,并没有多么的复杂化,只要很简单的小小几步,就能书写出来,下面是笔者所写的菜单代码!
- #include
-
- 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函数来打印菜单
下面是笔者的运转结果!符合我们的预期,因此简简单单的菜单就已经打印出来了!

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
-
- 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;
- }
因此上述代码合起来便能运算出来结果!

上述代码为笔者所运行出来的结果:在此笔者也能清晰的看出来,输入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);
上述的代码运算结果为:

由上述的代码跟运转结果可以看出:每次都输入了两句……
- 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
-
- 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;
- }
但是运转结果却是没有出现错误!只不过就是代码感觉不是很合适,因此需要进行简单的简化!
因为,笔者目前已经初步接触函数指针数组,所以可以进行简单的用函数指针来书写!
有兴趣的读者,请参考一下,笔者的下篇博文,下篇博文,将会进行详细的讲解!