C语言用函数指针实现计算器

一、运行结果;

C语言用函数指针实现计算器_第1张图片

二、源代码;

# define _CRT_SECURE_NO_WARNINGS
# include 

//实现目录函数;
void menum()
{
	//打印目录;
	printf("***********************************************\n");
	printf("*************   1.Add   2.Sub   ***************\n");
	printf("*************   3.Mul   4.Div   ***************\n");
	printf("******************   0.exit  ******************\n");
	printf("***********************************************\n");
}

//实现加法函数;
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;
}

//实现计算器函数;
void Calc(int (*pf) (int, int))
{
	//初始化变量值;
	int x = 0;
	int y = 0;
	int ret = 0;

	//提示用户输入操作数;
	printf("请输入2个操作数:--->");
	//获取用户输入的操作数;
	scanf("%d %d", &x, &y);

	//根据用户计算要求不同,选用不同的计算函数;
	ret = pf(x, y);

	//打印结果;
	printf("%d\n", ret);

}

int main()
{
	//初始化变量值;
	int input = 0;

	//用do....while实现计算机判断计算;
	do 
	{
		//调用目录函数;
		menum();

		//提示用户做出选择;
		printf("请做出选择:---->");
		//获取用户输入的数据;
		scanf("%d", &input);

		//用switch函数实现判断;
		switch (input)
		{
		case 1:
			//调用计算机函数(加);
			Calc(Add);
			break;
		case 2:
			//调用计算机函数(减);
			Calc(Sub);
			break;
		case 3:
			//调用计算机函数(乘);
			Calc(Mul);
			break;
		case 4:
			//调用计算机函数(除);
			Calc(Div);
			break;
		case 0:
			//提示用户退出计算机;
			printf("退出计算机!!!!!!\n");
			break;
		default:
			//提示用户选择错误;
			printf("选择错误!!!!!!!!\n");
			printf("请重输入!!!!!!!!\n");
			break;
		}


	}while(input);

	return 0;
}

你可能感兴趣的:(c语言,开发语言)