C语言实现简易计算器
通过C语言实现一个简易的计算器
计算器可实现加减乘除等一系列运算
方法一:
1.程序总体使用switch语句实现多分支选择
switch (input) { case 1: printf("请输入两个操作数 "); scanf("%d%d", &x, &y); Add(x, y); break; case 2: printf("请输入两个操作数 "); scanf("%d%d", &x, &y); Sub(x, y); break; case 3: printf("请输入两个操作数 "); scanf("%d%d", &x, &y); Mul(x, y); break; case 4: printf("请输入两个操作数 "); scanf("%d%d", &x, &y); Div(x, y); break; case 0: printf("退出程序 "); break; default: printf("输入错误 "); break; }
2.可以给做一个简单的菜单,写一个menu函数
void menu() { printf("************************************ "); printf("**** 1.Add 2.Sub **** "); printf("**** 3.Mul 4.Div **** "); printf("**** 0.退出 **** "); printf("************************************ "); }
3.加减乘除功能分别单独写一个函数
void Add(int x,int y) //函数不需要返回值,此处用空类型 { printf("output=%d ", x + y); } void Sub(int x, int y) { printf("output=%d ", x - y); } void Mul(int x, int y) { printf("output=%d ", x * y); } void Div(int x,int y) { printf("output=%d ", x / y); }
总体代码实现如下:
#include<stdio.h> void Add(int x,int y) { printf("output=%d ", x + y); } void Sub(int x, int y) { printf("output=%d ", x - y); } void Mul(int x, int y) { printf("output=%d ", x * y); } void Div(int x,int y) { printf("output=%d ", x / y); } int main() { int input = 0; int x = 0; int y = 0; do { menu(); printf("请选择:> "); scanf("%d", &input); switch (input) { case 1: printf("请输入两个操作数 "); scanf("%d%d", &x, &y); Add(x, y); break; case 2: printf("请输入两个操作数 "); scanf("%d%d", &x, &y); Sub(x, y); break; case 3: printf("请输入两个操作数 "); scanf("%d%d", &x, &y); Mul(x, y); break; case 4: printf("请输入两个操作数 "); scanf("%d%d", &x, &y); Div(x, y); break; case 0: printf("退出程序 "); break; default: printf("输入错误 "); break; } } while (input); }
这种方法当计算器实现的功能变多的时,switch里面会比较繁杂,可使用方法二来优化
方法2:创建一个函数指针数组来存放各个函数的地址,通过函数指针数组来访问这些函数
1.函数指针数组创建如下
void(*p[])(int, int) = { 0,Add,Sub,Mul,Div };
2.通过这个函数指针数组来访问函数并传参
void menu() { printf("************************************ "); printf("**** 1.Add 2.Sub **** "); printf("**** 3.Mul 4.Div **** "); printf("**** 0.退出 **** "); printf("************************************ "); } void Add(int x,int y) { printf("output=%d ", x + y); } void Sub(int x, int y) { printf("output=%d ", x - y); } void Mul(int x, int y) { printf("output=%d ", x * y); } void Div(int x,int y) { printf("output=%d ", x / y); } int main() { int input = 0; int x = 0; int y = 0; do { menu(); printf("请选择:> "); scanf("%d", &input); void(*p[])(int, int) = { 0,Add,Sub,Mul,Div }; //创建函数指针数组并初始化 if (input <= 4 && input >= 1) //通过if语句来限制输入选择的数字所实现的功能,逻辑分类 { printf("请输入两个操作数 "); scanf("%d%d", &x, &y); p[input](x, y); //通过函数指针数组来访问函数并传参 } else if (input == 0) { printf("退出程序 "); } else { printf("输入错误 "); break; } } while (input); }
参考以上程序也可自己再给里面添加其他的计算器功能
程序运行结果如下