#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;
}
运用函数指针数组写一个简易的计算器(个人练习)
于 2024-07-27 14:21:16 首次发布