实现一个计算器


题目:实现一个计算器,创建两个变量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 运行效果

优质内容筛选与推荐>>
1、关于Adobe CS3套装的"此产品的许可已停止" 的解决方案
2、我的WCF之旅(1):创建一个简单的WCF程序 源码
3、委托由浅入深学习
4、int和long int的区别
5、御剑后台扫描珍藏版


长按二维码向我转账

受苹果公司新规定影响,微信 iOS 版的赞赏功能被关闭,可通过二维码转账支持公众号。

    阅读
    好看
    已推荐到看一看
    你的朋友可以在“发现”-“看一看”看到你认为好看的文章。
    已取消,“好看”想法已同步删除
    已推荐到看一看 和朋友分享想法
    最多200字,当前共 发送

    已发送

    朋友将在看一看看到

    确定
    分享你的想法...
    取消

    分享想法到看一看

    确定
    最多200字,当前共

    发送中

    网络异常,请稍后重试

    微信扫一扫
    关注该公众号