#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
void menu()
{
printf("****************************\n");
printf("** menu **\n");
printf("**1:加 2:减**\n");
printf("**3:乘 4:除**\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)
{
while (y == 0)
{
printf("y不能等于0,请重新输入y:");
scanf("%d", &y);
}
return x / y;
}
//第一种方法
//int main()
//{
// int input = 0;
// int x = 0;
// int y = 0;
// do
// {
// menu();
// printf("请选择:>");
// scanf("%d", &input);
// switch (input)
// {
// case 1:
// printf("请输入两个数字:>");
// scanf("%d%d", &x, &y);
// printf("%d\n", add(x,y));
// break;
// case 2:
// printf("请输入两个数字:>");
// scanf("%d%d", &x, &y);
// printf("%d\n", sub(x,y));
// break;
// case 3:
// printf("请输入两个数字:>");
// scanf("%d%d", &x, &y);
// printf("%d\n", mul(x,y));
// break;
// case 4:
// printf("请输入两个数字:>");
// scanf("%d%d", &x, &y);
// printf("%d\n", div(x,y));
// break;
// case 0:
// printf("退出\n");
// break;
// default:
// printf("您输入错误!\n");
// break;
// }
// } while (input);
//}
//第二种方法利用函数指针数组
//int main()
//{
// int input = 0;
// int x = 0;
// int y = 0;
// int(*parr[4])(int, int) = {add,sub,mul,div};
// do
// {
// menu();
// printf("请选择:>");
// scanf("%d", &input);
// if (input >= 1 && input <= 4)
// {
// printf("请输入两个数字:>");
// scanf("%d%d", &x, &y);
// int ret = parr[input-1](x, y);
// printf("%d\n", ret);
// }
// else if (input == 0)
// {
// printf("退出\n");
// }
// else
// {
// printf("您输入错误!\n");
// }
// } while (input);
//}
//第三种方法回调函数
void calc(int(*pf)(int, int))
{
int x = 0;
int y = 0;
printf("请输入两个数字:>");
scanf("%d%d", &x, &y);
printf("%d\n", pf(x,y));
}
int main()
{
int input = 0;
int x = 0;
int y = 0;
do
{
menu();
printf("请选择:>");
scanf("%d", &input);
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");
break;
}
} while (input);
}
三种方法实现C语言计算器
最新推荐文章于 2024-03-02 21:04:51 发布