c语言数组高精度计算器,[置顶] 【C语言】 模拟计算器

本文展示了如何使用C语言中的枚举和函数指针实现一个简单的命令行菜单驱动的四则运算计算器。程序包括加、减、乘、除四种基本运算,并在除法时检查除数是否为零。用户可以输入操作选项和两个整数,程序返回运算结果。
摘要由CSDN通过智能技术生成

#include 

#include 

int _add(int a, int b)

{

return a + b;

}

int _sub(int a, int b)

{

return a - b;

}

int _mul(int a, int b)

{

return a*b;

}

int _div(int a, int b)

{

if (b == 0)

{

printf("除数位0\n");

}

return a / b;

}

void menu()

{

printf("*************************\n");

printf("**** 1.add   2.sub   ****\n");

printf("**** 3.mul   4.div   ****\n");

printf("******** 0.exit *********\n");

printf("*************************\n");

}

int main()

{

int input = 1;

int num1 = 0;

int num2 = 0;

int ret = 0;

while (input)

{

menu();

printf("请选择>:");

scanf("%d", &input);

printf("请输入两个整数操作数>:");

scanf("%d%d", &num1, &num2);

switch (input)

{

case 1:

ret = _add(num1, num2);

break;

case 2:

ret = _sub(num1, num2);

break;

case 3:

ret = _mul(num1, num2);

break;

case 4:

ret = _div(num1, num2);

break;

case 0:

exit(EXIT_FAILURE);

break;

default:

printf("选择错误,请重新选择.\n");

break;

}

printf("ret = %d\n", ret);

}

return 0;

}

此外,也可以用枚举结构(enum)实现:

#include 

#include 

enum OP

{

EXIT,

ADD,

SUB,

MUL,

DIV

};

int _add(int a, int b)

{

return a + b;

}

int _sub(int a, int b)

{

return a - b;

}

int _mul(int a, int b)

{

return a*b;

}

int _div(int a, int b)

{

if (b == 0)

{

printf("除数位0\n");

}

return a / b;

}

void menu()

{

printf("*************************\n");

printf("**** 1.add   2.sub   ****\n");

printf("**** 3.mul   4.div   ****\n");

printf("******** 0.exit *********\n");

printf("*************************\n");

}

int(*pfun[5])(int, int) = {0, _add, _sub, _mul, _div};

int main()

{

int input = 1;

int num1 = 0;

int num2 = 0;

int ret = 0;

while (input)

{

menu();

printf("请选择>:");

scanf("%d", &input);

printf("请输入两个整数操作数>:");

scanf("%d%d", &num1, &num2);

if (input >= 1 && input <= 4)

{

ret = pfun[input](num1, num2);

}

else if (input == 0)

{

exit(EXIT_FAILURE);

}

else

{

printf("选择错误\n");

}

printf("ret = %d\n", ret);

}

return 0;

}

本文出自 “Vs吕小布” 博客,谢绝转载!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值