写一个计算器(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函数来打印菜单
下面是笔者的运转结果!符合我们的预期,因此简简单单的菜单就已经打印出来了!
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; }
因此上述代码合起来便能运算出来结果!
上述代码为笔者所运行出来的结果:在此笔者也能清晰的看出来,输入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 <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; }
但是运转结果却是没有出现错误!只不过就是代码感觉不是很合适,因此需要进行简单的简化!
因为,笔者目前已经初步接触函数指针数组,所以可以进行简单的用函数指针来书写!
有兴趣的读者,请参考一下,笔者的下篇博文,下篇博文,将会进行详细的讲解!