C语言用函数指针实现计算器

一、运行结果;

二、源代码;

# define _CRT_SECURE_NO_WARNINGS
# include <stdio.h>//实现目录函数;
void menum()
{//打印目录;printf("***********************************************\n");printf("*************   1.Add   2.Sub   ***************\n");printf("*************   3.Mul   4.Div   ***************\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)
{//计算并返回值;return x / y;
}//实现计算器函数;
void Calc(int (*pf) (int, int))
{//初始化变量值;int x = 0;int y = 0;int ret = 0;//提示用户输入操作数;printf("请输入2个操作数:--->");//获取用户输入的操作数;scanf("%d %d", &x, &y);//根据用户计算要求不同,选用不同的计算函数;ret = pf(x, y);//打印结果;printf("%d\n", ret);}int main()
{//初始化变量值;int input = 0;//用do....while实现计算机判断计算;do {//调用目录函数;menum();//提示用户做出选择;printf("请做出选择:---->");//获取用户输入的数据;scanf("%d", &input);//用switch函数实现判断;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");printf("请重输入!!!!!!!!\n");break;}}while(input);return 0;
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/612789.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【Linux】linux踢出远程登录用户命令

linux踢出远程登录用户命令&#xff1a; 查看当前自己的终端&#xff1a; [roothadoop3 ~]# who am i root pts/1 2013-01-22 10:45 (192.168.250.110) 输入w命令查看已登录用户信息 [roothadoop3 ~]# who root pts/0 2013-01-22 09:56 (192.168.250.2…

当使用WSL下载运行Docker可视化界面的镜像,使用报错

Traceback (most recent call last): File “app.py”, line 345, in root tk.Tk() File “/usr/lib/python3.8/tkinter/init.py”, line 2270, in init self.tk _tkinter.create(screenName, baseName, className, interactive, wantobjects, useTk, sync, use) _tkinter.T…

Python - 深夜数据结构与算法之 Heuristic Search

目录 一.引言 二.启发式搜索简介 1.BFS 广度优先 2.A* Search 3.估价函数 三.经典算法实战 1.Binary-Shortest-Path [1091] 2.Sliding-Puzzle [773] 四.总结 一.引言 Heuristic Search 启发式搜索&#xff0c;又名 A* 搜索&#xff0c;其不基于广度、也不基于深度而是…

Keep In Line

又到饭点了&#xff0c;SK同学靠着惯性走到了食堂&#xff0c;但长长的队伍顿时让他失去了食欲。突然&#xff0c;他注意到某个窗口前的队伍里明显存在插队的现象&#xff0c;于是他默默记录下了同学们进队和出队的变化。 对于进队&#xff0c;SK同学只知道队伍里多了一个人…

Retrieval-Augmented Generation for Large Language Models: A Survey

PS: 梳理该 Survey 的整体框架&#xff0c;后续补充相关参考文献的解析整理。本文的会从两个角度来分析总结&#xff0c;因此对于同一种技术可能在不同章节下都会有提及。第一个角度是从整体框架的迭代来看&#xff08;对应RAG框架章节&#xff09;&#xff0c;第二个是从RAG中…

Linux和windows进程同步与线程同步那些事儿(四):windows 下进程同步

Linux和windows进程同步与线程同步那些事儿&#xff08;一&#xff09; Linux和windows进程同步与线程同步那些事儿&#xff08;二&#xff09;&#xff1a; windows线程同步详解示例 Linux和windows进程同步与线程同步那些事儿&#xff08;三&#xff09;&#xff1a; Linux线…

Tensorflow Lite从入门到精通

TensorFlow Lite 是 TensorFlow 在移动和 IoT 等边缘设备端的解决方案&#xff0c;提供了 Java、Python 和 C API 库&#xff0c;可以运行在 Android、iOS 和 Raspberry Pi 等设备上。目前 TFLite 只提供了推理功能&#xff0c;在服务器端进行训练后&#xff0c;经过如下简单处…

IC设计的前端和后端是如何区分的?

一、工作着重点不同 **1、IC前端&#xff1a;**根据芯片规格书完成SOC的设计和集成&#xff0c; 使用仿真验证工具完成SOC的设计验证。 **2、IC后端&#xff1a;**将前端设计产生的门级网表通过EDA设计工具进行布局布线和进行物理验证并最终产生供制造用的GDSII数据 二、工作…

【开源】基于JAVA+Vue+SpringBoot的超市账单管理系统

目录 一、摘要1.1 项目介绍1.2 项目录屏 二、功能模块三、系统设计3.1 总体设计3.2 前端设计3.3 后端设计在这里插入图片描述 四、系统展示五、核心代码5.1 查询供应商5.2 查询商品5.3 新增超市账单5.4 编辑超市账单5.5 查询超市账单 六、免责说明 一、摘要 1.1 项目介绍 基于…

使用pygame.draw绘制基本图形

import pygame# 初始化pygame pygame.init()# 创建显示窗口 screen pygame.display.set_mode((640, 480)) pygame.display.set_caption("绘制基本图形")# 定义颜色 BLACK (0, 0, 0) WHITE (255, 255, 255) RED (255, 0, 0) GREEN (0, 255, 0) BLUE (0, 0, 255)…

用java实现Client和Server之间的互相通信

概要&#xff1a;看过我之前文章的人都知道&#xff0c;client和server之间的通信必不可少的就是socket。而java已经帮我们做了很多事情。 创建Server端 第一步&#xff0c;创建ServerSocket 这个从名字上就可以看出来&#xff0c;服务器上的socket 0.0 ServerSocket ser…

算法篇:动态规划II

35、647. 回文子串 ①状态表示&#xff1a;dp[i][j]表示&#xff1a;s字符串[i&#xff0c;j]的子串&#xff0c;是否是回文串。(i<j) ②状态转移方程&#xff1a; if(s[i]!s[j]) dp[i][j]false; else if(s[i]s[j]) { if(ij||i1j)dp[i][j]true; else dp[i1][j-1]; }…

SpringMVC-04

RESTful是一种针对Web服务的软件架构风格&#xff0c;它基于HTTP协议和其他标准&#xff0c;用于构建可扩展、可维护和可拓展的网络应用程序。 RESTful风格的设计原则包括以下几点&#xff1a; 资源&#xff1a;将应用程序的所有内容都视为资源&#xff0c;每个资源都有唯一的…

(详细版)Vary: Scaling up the Vision Vocabulary for Large Vision-Language Models

Haoran Wei1∗, Lingyu Kong2∗, Jinyue Chen2, Liang Zhao1, Zheng Ge1†, Jinrong Yang3, Jianjian Sun1, Chunrui Han1, Xiangyu Zhang1 1MEGVII Technology 2University of Chinese Academy of Sciences 3Huazhong University of Science and Technology arXiv 2023.12.11 …

通过dockerfile基于centosdocker镜像和postgresql12的离线安装包制作单机版的Docker镜像

可以按照以下步骤来制作一个基于CentOS Docker镜像和PostgreSQL 12离线安装包的单机版Docker镜像&#xff1a; 首先&#xff0c;创建一个空文件夹作为工作目录。 将CentOS Docker镜像保存到本地文件系统中&#xff0c;命名为centos.tar。你可以从Docker Hub下载CentOS Docker镜…

Docker部署Homepage个人引导页

个人名片&#xff1a; 对人间的热爱与歌颂&#xff0c;可抵岁月冗长&#x1f31e; 个人主页&#x1f468;&#x1f3fb;‍&#x1f4bb;&#xff1a;念舒_C.ying 个人博客&#x1f30f; &#xff1a;念舒_C.ying Homepage | 主页 1. 安装环境2. Docker部署 原作者&#xff1a;無…

flutter release包使用adb查看日志排查错误实践

release包给出去后发现出现无法启动的情况&#xff0c;需要flutter开发排查 &#xff0c;直接将release包安装到模拟器 使用adb 去连接模拟器 我这边是MuMu模拟器 adb connect 127.0.0.1:7555 然后查看设备列表 adb devices 直接输入0 即选择第一个设备 然后使用 adb logcat …

Python爬虫---Scrapy项目的创建及运行

Scrapy是一个为了爬取网站数据&#xff0c;提取结构性数据而编写的应用框架。 可以应用在包括数据挖 掘&#xff0c;信息处理或存储历史数据等一系列的程序中。 1. 安装scrapy&#xff1a; pip install scrapy 注意&#xff1a;需要安装在python解释器相同的位置,例如&#xf…

Spring原理-7.切点与切面

&#x1f44f;作者简介&#xff1a;大家好&#xff0c;我是爱吃芝士的土豆倪&#xff0c;24届校招生Java选手&#xff0c;很高兴认识大家&#x1f4d5;系列专栏&#xff1a;Spring原理、JUC原理、Kafka原理、分布式技术原理、数据库技术&#x1f525;如果感觉博主的文章还不错的…

静态网页设计实践(HTML+CSS)

一、前端程序员必会三大编程语言 &#xff08;一&#xff09;HTML&#xff08;.html/.htm&#xff09; 超文本标记语言&#xff08;HyperText Markup Language&#xff0c;简称:HTML&#xff09;是一种用于创建网页的标准标记语言。HTML是一种基础技术&#xff0c;常与CSS、Ja…