这里的“计算器”仅可以进行加减乘除基本运算。
代码如下:
#include <stdio.h>
#include <Windows.h>
#pragma warning(disable:4996)
//函数指针数组实现 计算器
int my_add(int x, int y)//加法运算
{
return x + y;
}
int my_sub(int x, int y)//减法运算
{
return x - y;
}
int my_mul(int x, int y)//乘法运算
{
return x*y;
}
int my_div(int x, int y)//除法运算
{
if (y == 0){ //分母为零
printf("div zero!error!");
return 0;
}
return x / y;
}
void menu() //主页面
{
printf("#############################\n");
printf("### 1.add 2.sub ###\n");
printf("### 3.mul 4.div ###\n");
printf("### 0.quit ###\n");
printf("Please select!\n");
}
int main()
{
int select = 0;
int x, y;
int ret = 0;
int(*p[5])(int x, int y) = { 0,my_add, my_sub, my_mul, my_div };//函数指针数组
do{
menu();
scanf("%d", &select);
if (select >= 1 && select <= 4){ //合法选项
printf("请输入操作数:\n");
scanf("%d%d", &x, &y);
ret = (*p[select])(x, y);//函数调用
printf("%d\n", ret);
}
else if (select == 0){//退出计算器
printf("goodbye!\n");
break;
}
else{
printf("you enter select error![1,4]\n");//输入错误并提示
}
} while (1);
system("pause");
return 0;
}
运行;
进行+ - * /运算;
按0退出: