普通代码实现计算器功能:

#define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.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) {return a / b;
}int main() {int input = 0;int ret = 0;int a = 0;int b = 0;do {printf("********************\n");printf("    1.add   2.sub    \n");printf("    3.mul   4.div    \n");printf("       0.exit        \n");printf("********************\n");printf("请选择:>");scanf("%d", &input);switch (input) {case 1:printf("请输入操作数:");scanf("%d %d", &a, &b);ret = add(a, b);printf("%d\n", ret);break;case 2:printf("请输入操作数:");scanf("%d %d", &a, &b);ret = sub(a, b);printf("%d\n", ret);break;case 3:printf("请输入操作数:");scanf("%d %d", &a, &b);ret = mul(a, b);printf("%d\n", ret);break;case 4:printf("请输入操作数:");scanf("%d %d", &a, &b);ret = div(a, b);printf("%d\n", ret);break;case 0:printf("退出程序~\n");break;default:printf("选择错误\n");break;}} while (input);return 0;
}

函数指针数组实现计算器功能:

利用函数指针数组把计算器方法(封装?)在一个数组中
调用更加简单,代码更加简洁~

#define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.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) {return a / b;
}int main() {int input = 0;int ret = 0;int a = 0;int b = 0;声明定义函数指针数组让NULL在0是让用户选择函数方法时操作方便int(*pfArr[5])(int, int) = { NULL,Add,Sub,Mul,Div };do {printf("********************\n");printf("    1.add   2.sub   \n");printf("    3.mul   4.div    \n");printf("       0.exit        \n");printf("********************\n");printf("请选择:>");scanf("%d", &input);//细心判断用户选择if (input >= 1 && input <= 4) {printf("请输入两个操作数:>");scanf("%d %d", &a, &b);通过用户input选择哪个函数,就去函数指针数组中找该函数并且把a,b的数据传递过去。ret = (pfArr[input])(a, b);printf("ret = %d\n", ret);}else if (input == 0) {printf("退出程序~");break;}else {printf("选择错误\n");}} while (input);return 0;
}

C语言 简单实现计算器功能 ·函数指针数组实现计算器相关推荐

  1. 进阶C语言 - 指针(3):函数指针数组

    目录 6. 函数指针数组 那么函数指针数组有什么用呢? 写一个计算器:实现简单的加减乘除 函数指针和函数指针数组的区别: 用函数指针和函数指针数组来实现计算器的区别: 6. 函数指针数组 函数指针数组 ...

  2. 计算器(利用回调函数/函数指针数组实现) C语言

    玩点不一样的 一.利用回调函数实现 #include <stdio.h>void menu() {printf("************ 计算器 **********\n&qu ...

  3. C语言(函数指针数组)详解

    要了解函数指针数组,可以从三个角度来分析.所谓函数指针数组,从字面意思上来解析,函数指针数组的组成有三个点,函数,指针,数组.首先我们知道,函数指针数组,是一个数组,数组的每个元素是函数指针,也就是一 ...

  4. C语言指针的那些事:第三篇(函数指针,指针函数,函数指针数组,指向函数指针数组的指针)

    文章目录 1. 函数指针 1)函数指针的例题 2. 指针函数 3. 函数指针数组 1)函数指针数组的用途 4. 指向函数指针数组的指针 5. 一些后话 1. 函数指针 函数指针就是指向函数的指针:本质 ...

  5. C语言程序设计 | 指针(二):常量指针和指针常量、数组参数和指针参数、函数指针数组

    指针的进阶(二)目录: 常量指针和指针常量 数组参数和指针参数 函数指针数组 常量指针和指针常量 在我们日常中,经常会用到一个关键字const const是一个C语言(ANSI C)的关键字,具有着举 ...

  6. 结构体自定义指针函数c语言,C语言结构体中的函数指针

    C语言结构体中的函数指针 C语言结构体中的函数指针内容由小编收集整理,希望对您的 学习有所帮助!更多内容请关注应届毕业生考试网! 结构体是由一系列具有相同类型或不同类型的数据构成的数据集合.所以,标准 ...

  7. C语言结构体中定义函数指针详解

    C语言结构体中定义函数指针详解 结构体指针函数应用场景之一--驱动程序编写 结构体的一些基本用法 形式1:先定义结构体类型,再定义变量 形式2:在定义类型的同时定义变量 形式3:直接定义变量,用无名结 ...

  8. C语言基础10——指针进阶。字符指针、指针数组、数组指针、函数指针、函数指针数组、回调函数、数组名详解、杨氏矩阵、字符串旋转

    目录 字符指针 指针数组 数组指针 数组传参.指针参数 函数指针 函数指针数组 指向函数指针数组的指针 回调函数 练习 数组名的意义 指针笔试题 字符指针 字符指针的另一种使用方式 #include ...

  9. C语言指针数组,数组指针,函数指针,函数指针数组,函数指针数组的指针,回调函数

    C语言指针的一些知识点 指针 指针数组和数组指针的概念 函数指针,函数指针数组,函数指针数组的指针 回调函数 指针 1.指向对象的指针 int *p = new int(10); delete p; ...

  10. c语言:数组指针,指针数组,函数指针,函数指针数组,指向函数指针数组的指针

    指针是一种保存变量地址的变量.在c语言中,指针的用途十分广泛,而其与数组和函数的关系也十分密切.下面我们来简单介绍一些指针的应用. 1.指针数组 指针数组:首先它是一个数组,这个数组中的内容都是指针变 ...

最新文章

  1. Go 学习笔记(15)— 函数(01)[函数定义、函数特点、多值返回、实参形参、变长参数,函数作为参数调用]
  2. .net Remoting(2)——信道,MarshalByRefObject类
  3. 非授权频谱NB-IoT将引发市场格局突变
  4. 《自卑与超越》读书笔记(part6)--职业有些时候成为了人们逃避爱情和社会问题的借口
  5. SpringBoot2 中 spring.http.multipart.max-file-size 报错问题
  6. Linux中常用的网络命令
  7. 使用xp_readerrorlog命令读取SQL Server错误日志
  8. PHP移动互联网开发(1)——环境搭建及配置
  9. op手机突然显示无服务器,op手机 云服务器
  10. DevOps实践教程 华为云 系列教程2021 合集
  11. TensorFlow入门:mnist数据集解析
  12. Windows多用户远程桌面-采用RDP Wrapper Library支持10.0.18363.900、10.0.18362.836、10.0.19041.789之前所有的Windows版本
  13. 【积累】非常全面的开源数据集
  14. 第7章 文件和数据格式化
  15. 快速明白ARCore + 上手
  16. 努比亚 Z17(Nubia NX563J) 解锁BootLoader 并刷入recovery
  17. Python模拟鼠标点击与实时获取鼠标位置
  18. Bailian2706 麦森数【大数】
  19. jquery判断是否按下Enter(回车)和TAB键
  20. Dev-C++如何单步调试程序--8min学会自己找程序错误

热门文章

  1. 小米手机miui截图后游戏重启的问题
  2. 数据原理——2、ChIA-PET
  3. php测速,speedtest-x :一款PHP网页测速工具
  4. 什么是支付账户、备付金、网络支付、银行卡清算、贷记卡、代扣、代付....
  5. 红米5 Plus刷开发版/小米手机刷开发版
  6. python控制雷电模拟器
  7. 9.屏幕宽高比判断(Screen.width,Screen.height)
  8. 绿色沃土计划农业大健康 功能性农业国稻种芯发力耕地体质
  9. 医院体检PEIS系统
  10. java基于ssm的房屋租赁管理系统