运用函数指针数组写一个简易的计算器(个人练习)

#include<stdio.h>
double add(double num1, double num2)
{
	double result = num1 + num2;
	return result;
}
double minus(double num1, double num2)
{
	double result = num1 - num2;
	return result;
}
double multiply(double num1, double num2)
{
	double result = num1 * num2;
	return result;
}
double divide(double num1, double num2)
{
	if (num2 == 0)
	{
		printf("除数不能为0\n");
		return 0.0;
	}
	double result = num1 / num2;
	return result;
}
int main()
{
	double num1, num2;
	char calculate_sign;
	int calculate_change;
a:
	printf("请输入要计算的数字和符号:");
	scanf("%lf%c%lf", &num1, &calculate_sign, &num2);
	double(*arr[4])(double, double) = { add,minus,multiply,divide };
	switch (calculate_sign) 
    {
	case '+':
		calculate_change = 0;
		break;
	case '-':
		calculate_change = 1;
		break;
	case '*':
		calculate_change = 2;
		break;
	case '/':
		calculate_change = 3;
		break;
	default:
		printf("没有这个计算符号,请重新输入\n");
		goto a;//因为不是循环所以用goto达到重新输入的目的
	}
	double result = (arr[calculate_change])(num1, num2);
	printf("计算结果为:%lf", result);
	return 0;
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值