实现一个计算器

来源:互联网 发布:希捷 数据恢复服务 编辑:程序博客网 时间:2024/05/16 19:44

题目:实现一个计算器,创建两个变量a,b,以及操作字符,实现输入“+”,执行加法,‘-’,执行减法,以此类推,有一个综合函数处理输入,有加减乘除求余5种运算,请用函数指针实现,以及函数指针作为参数来实现,具体实现如下:

#include<stdlib.h>#include<stdio.h>typedef int(*FunPtr)(int, int);int Add(int a, int b){return a + b;}int Sub(int a, int b){return a - b;}int Mul(int a, int b){return a*b;}int Div(int a, int b){return a / b;}int Mod(int a, int b){return a%b;}int Op(FunPtr f1, FunPtr f2, FunPtr f3, FunPtr f4, FunPtr f5, char cOperator, int a, int b, int * Out){if (f1 == NULL || f2 == NULL || f3 == NULL || f4 == NULL || f5 == NULL || Out == NULL){return 0;}switch (cOperator){case '+':{*Out = f1(a, b);break;}case '-':{*Out = f2(a, b);break;}case '*':{*Out = f3(a, b);break;}case '/':{*Out = f4(a, b);break;}case '%':{*Out = f5(a, b);break;}default:return 0;}return 1;}int main(){printf("请输人两个数据和一个运算符(x+y):\n");int a = 0;int b = 0;char c = 0;int nRet = 0;scanf("%d%c%d", &a, &c, &b);if (Op(Add, Sub, Mul, Div, Mod, c, a, b, &nRet) == 0){printf("函数计算失败.\n");return 0;}printf("结果=%d\n", nRet);system("pause");return 0;}
运行效果如图1所示:

图1 运行效果

0 0
原创粉丝点击