【C语言】 模拟计算器
2015-11-24 22:23
429 查看
#include <stdio.h> #include <stdlib.h> 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 <stdio.h> #include <stdlib.h> 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吕小布” 博客,谢绝转载!
相关文章推荐
- C语言的那些小秘密之异常处理
- C++中的static和const有什么区别
- c++ 11 多线线程系列--------使用锁和条件变量的线程安全队列
- C/C++学习(四)变态跳台阶
- 约瑟夫问题解决及实现代码(C语言版)
- Introduce to algorithm--------pseudo code to C/C++ code (chapter 24)
- C++ 不用判断运算符进行比较两个数的大小
- C++ 语句
- C++primer plus第六版课后编程练习答案4.1
- Google C++ Style Guide
- qt/c++ 实现二维码生成(利用qrencode)
- 大数加法(C语言)
- 《C++ primer》英文第五版阅读笔记(十八)——成员运算符和条件运算符
- hdu 4034 Graph(深化最短路floyd)
- C++ vector多维数组初始化及清零
- C/C++学习(三)模板类之间继承
- [C++] 插入排序法 (Insertion sort)
- C++11常用特性学习——多线程优化初步(原子类型/lambda语句)
- C++11常用特性学习-类型安全(强类型枚举类/智能指针)
- C++函数指针数组的使用方法