使用函数指针数组实现计算器

#include"stdio.h"
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 eum()
{
	printf("*******************************\n");
	printf("***1. add   2. sub   **********\n");
	printf("***3. mul   4. div   **********\n");
	printf("***     0. exit     **********\n");
	printf("*******************************\n");
}
int main()
{
	int input = 0;
	int x = 0;
	int y = 0;
	int ret = 0;

	//函数指针数组  -- >   转移表
	int (* pf[5])(int ,int) = {NULL,Add,Sub,Mul,Div};
	//int (*) (int, int)函数指针类型

	do
	{
		eum();
		printf("请选择:>");
		scanf("%d", &input);
		if (input >= 1 && input <= 4)
		{
			printf("请输入两个操作数:>");
			scanf("%d %d", &x, &y);
			ret = (*pf[input])(x, y);
			printf("%d\n", ret);
		}
		else if (input == 0)
		{
			printf("退出程序\n");
		}
		else
		{
			printf("输入错误,重新输入\n");
		}
	} while (input);
	return 0;
}

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
这是一个C程序,可以实现加减乘除的计算器功能。程序首先接受两个数作为输入,然后根据用户输入的操作符进行相应的运算,最后输出结果。具体的实现步骤如下: 1. 引用的代码中首先包含了两个头文件,iostream用于输入输出流,cstring用于字符串操作。接下来使用了using namespace std来引入标准命名空间。 2. 在主函数main()中,定义了整型变量a和b用于存储用户输入的两个数。 3. 进入while循环,循环条件为1,即永远为真,使得程序可以一直进行计算。 4. 接下来定义了整型变量f1和f2,用于存储操作数和结果。 5. 定义了字符数组a,用于存储用户输入的操作符。 6. 使用cin输入流依次读取f1和a。 7. 使用strlen函数获取字符数组a的长度。 8. 定义了指针p指向字符数组a的首地址。 9. 使用for循环遍历字符数组a,从索引1开始,将字符转换为整型数字,并计算f2的值。 10. 利用switch语句根据操作符进行相应的运算,将结果存储在ans变量中。 11. 使用delete释放动态分配的内存,避免内存泄漏。 12. 使用cout输出结果ans。 13. 循环回到while开始的地方,继续接受输入并进行计算。 这段代码实现了一个简单的C语言加减乘除的计算器。用户可以输入两个数和一个操作符,然后程序会根据操作符进行相应的运算并输出结果。<span class="em">1</span><span class="em">2</span>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值