【C语言】计算器

article/2025/11/7 18:55:50

 🚀write in front🚀


🔎大家好,我是謓泽,希望你看完之后,能对你有所帮助,不足请指正!共同学习交流🔎
🏅2021年度博客之星物联网与嵌入式开发TOP5~2021博客之星Top100~阿里云专家^星级博主~掘金 ⇿ InfoQ创作者~周榜77»总榜2226🏅
🆔本文由 謓泽 原创 CSDN首发🙉如需转载还请通知
📝个人主页:打打酱油desuCSDN博客💬
🎁欢迎各位→点赞👍 + 收藏⭐️ + 留言📝​
📣系列专栏:
YY_謓泽的博客-CSDN博客[〇~①]🎓
✉️我们并非登上我们所选择的舞台,演出并非我们所选择的剧本📩 

🍊计算器の目录🍏

 🚀write in front🚀

🤔实现逻辑

😐普通代码实现 

🙄高级代码实现

😮运行结果

😋最后

🤔实现逻辑

首先创建菜单(menu),把我们需要实现的功能打印到运行栏屏幕上。

1、实现加法计算

2、实现减法计算

3、实现除法计算

4、实现乘法计算

0、退出计算器

当然以上都是属于最基本的计算,你当然还可以实现一些其它计算。例如:

位运算(按位与、按位或、按位异或)

左移操作符、右移操作符、取模、开平方等...

由于道理都是一样的只是 return 返回值就可以了在这里不再多述,也有些可以使用库函数直接引用即可像sqrt()、pow()等......


😐普通代码实现 

计算器⇲の普通代码实现如下⇩

#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
void menu()
{printf("|-------- 计算器 --------|\n");printf("|-------★ 1.Add ★------|\n");printf("|-------★ 2.Sub ★------|\n");printf("|-------★ 3.Mul ★------|\n");printf("|-------★ 4.Div ★------|\n");printf("|-------★ 0.Exit★------|\n");
}
double Add(double x, double y)
{return x + y;
}
double Sub(double x, double y)
{return x - y;
}
double Mul(double x, double y)
{return x * y;
}
double Div(double x, double y)
{return x / y;
}
int main(void)
{menu();double x = 0.0;double y = 0.0;double ret = 0.0;int input = 0;do{printf("请输入菜单界面(input):");scanf("%d", &input);switch (input){case 0:printf("Exit!\n");break;case 1:printf("请输入两个数字:");scanf("%lf %lf", &x, &y);ret = Add(x, y);printf("ret = %.2lf\n", ret);break;case 2:printf("请输入两个数字:");scanf("%lf %lf", &x, &y);ret = Sub(x, y);printf("ret = %.2lf\n", ret);break;case 3:printf("请输入两个数字:");scanf("%lf %lf", &x, &y);ret = Mul(x, y);printf("ret = %.2lf\n", ret);break;case 4:printf("请输入两个数字:");scanf("%lf %lf", &x, &y);ret = Div(x, y);printf("ret = %.2lf\n", ret);break;default:printf("你输入的数字错误,请重新输入!\n");break;}} while (input);return 0;
}

🙄高级代码实现

计算器⇲の高级代码实现如下⇩

#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
void menu()
{printf("|-------- 计算器 --------|\n");printf("|-------★ 1.Add ★------|\n");printf("|-------★ 2.Sub ★------|\n");printf("|-------★ 3.Mul ★------|\n");printf("|-------★ 4.Div ★------|\n");printf("|-------★ 0.Exit★------|\n");
}
double Add(double x, double y)
{return x + y;
}
double Sub(double x, double y)
{return x - y;
}
double Mul(double x, double y)
{return x * y;
}
double Div(double x, double y)
{return x / y;
}
int main(void)
{menu();double(*p[5])(double, double) = { NULL, Add, Sub, Mul, Div };//函数指针数组!int input = 0;do{printf("请输入菜单界面上数字:");scanf("%d", &input);if (input >= 1 && input <= 4){double x = 0.0, y = 0.0;printf("请输入两个数字:");scanf("%lf %lf", &x, &y);double ret = (*p[input])(x, y);//下标引用printf("ret = %.2lf\n", ret);printf("-------\n");}else if (input == 0){printf("Exit退出\n");break;}else{printf("你输入数字不在范围之内,请重新输入!\n");}} while (input);return 0;
}

😮运行结果

加法运行结果↓

减法运行结果↓ 

乘法运行结果↓

除法运行结果↓

退出exit↓

输入错误↓


😋最后

实现C语言这种计算器简易的是比较容易的,在这里我们使用的普通代码和高级代码的实现本计算器初学者可能会用到普通代码的实现,但是如果你学过函数指针数组你就可以用这种高级代码的实现方法来做本题,不会指针或者不太了解可以看看博主写过的指针系列的文章如下所示↓

🍏⒈⇨【C语言】万字速通初阶指针 zero → One_謓泽的博客-CSDN博客

🍊⒉⇨【C语言】⒉万字带你玩转高阶指针『0»1』_謓泽的博客-CSDN博客

如果你这里,不用函数指针数组去实现实际上也可以,但是代码量会冗余。推荐使用函数指针的方法来进行实现,效率大大滴提高。

注意这样写它的函数参数必须是统一的才可以。

看到这里了,点个赞吧😋😋😋


http://chatgpt.dhexx.cn/article/b9UQDSob.shtml

相关文章

通信行业研究宝典

文章大纲 哑铃型布局&#xff0c;从供应链、产业链到场景链端-智能硬件&#xff1a;万亿大市场&#xff0c;小米重兵布局管-物联网核心基础设施&#xff0c;小米重点布局芯片、模组、小基站云-应用服务布局&#xff1a;布局向家、车、天场景延伸&#xff0c;文娱迎来新增长 通信…

HTTP RPC Dubbo hsf Spring-cloud 图解比较

前言 HSF是一个分布式的远程服务调用框架&#xff0c;其实我更喜欢把分布式几个字去掉&#xff0c;因为HSF本身并不是一个单独的服务&#xff08;指一个进程&#xff09;&#xff0c;他是附属在你的应用里的一个组件&#xff0c;一个RPC组件(远程过程调用——Remote Procedure…

第五章:产品管理

本章索引&#xff1a; [第五章&#xff1a;产品管理(1) – 产品管理介绍] [第五章&#xff1a;产品管理(2) – 需求管理方法] [第五章&#xff1a;产品管理(3) – 目标管理 ] [第五章&#xff1a;产品管理(4) – 团队沟通] [第五章&#xff1a;产品管理(5) – 团队协同] …

5G时代,产业互联网新生态正在加速形成。

转自:微点阅读(www.weidianyuedu.com)微点阅读 - 范文大全 - 免费学习网站 导 读 回顾整个移动通信发展史,有人说2G时代发短信是最时髦的通信方式,3G时代微信兴起,4G时代手机把衣食住行都“管起来”。 到了5G时代,已经突破传统通信技术人与人之间点对点的通信模式,大…

[已授权] 互联网定位技术小谈

​ 诚邀阿里云先知社区邀请&#xff0c;不胜感激&#xff01;今日小编在此为大家介绍一下互联网中所应用的定位技术。互联网的发展日新月异&#xff0c;技术迭代很快&#xff0c;各行各业的智慧在互联网这片蓝天下碰撞结晶&#xff0c;造福大众。今天要讲述的集中定位方式&…

5G承载网,到底有哪些关键技术?

戳蓝字“CSDN云计算”关注我们哦&#xff01; 作者 | 小枣君 来源 | 鲜枣课堂 之前小枣君给大家介绍了5G承载网的基本知识&#xff08;链接&#xff1a;5G承载网到底有什么不同&#xff1f;&#xff09;。今天&#xff0c;我们再来看看5G承载网中的常见关键技术。 首先&#x…

IDC报告称中国成为全球第二大公有云 IaaS 市场;腾讯牵手宝马在华设云计算中心;华为5G折叠屏手机通过入网许可:8月上市……...

关注并标星星CSDN云计算 极客头条&#xff1a;速递、最新、绝对有料。这里有企业新动、这里有业界要闻&#xff0c;打起十二分精神&#xff0c;紧跟fashion你可以的&#xff01; 每周三次&#xff0c;打卡即read 更快、更全了解泛云圈精彩news go go go 海盗船已推出第一款32G…

中台架构的未来在哪—开放式架构

春节前应“技术琐话”之约&#xff0c;试图写一篇讨论架构方法论的文章&#xff0c;然而动笔之后&#xff0c;才发现&#xff0c;自己似乎陷入了Frederick P. Brooks先生在《设计原本》一书中指出的问题&#xff1a;“设计中最困难的部分在于决定要设计什么”。 2020年1月18日…

大多数人不知道的企业数据分析能力金字塔,你处在哪一级?

写这篇文章来源于两个故事&#xff1a; 故事一&#xff1a;一位在互联网行业做数据库架构多年的朋友一起吃饭&#xff0c;问起我现在在做什么&#xff0c;我说自己在做医疗方面的数据分析&#xff0c;朋友笑&#xff0c;说&#xff1a;你有很多资源啊&#xff0c;只要你能拿到…

美团 大规模商品知识图谱的构建与应用

作者 | 曹雪智博士 美团 技术专家 来源 | DataFunTalk 在互联网新零售的大背景下&#xff0c;商品知识图谱作为新零售行业数字化的基石&#xff0c;提供了对于商品相关内容的立体化、智能化、常识化的理解&#xff0c;对上层业务的落地起到了至关重要的作用。 相比于美团大脑中…

我逃到国企了

文章内容整理自公众号国企程序锅 文章目录 入职国企心得体会 一、入职前二、入职后三、工作开发内容四、钱总结&#xff1a;北京户口相关问题 一、北京户口咋获得&#xff1f;二、北京户口有啥用&#xff1f;三、高薪无户口VS低薪有户口&#xff1f;总结&#xff1a;秋招找国企…

小程序,是腾讯云的杀手锏?

“【报告下载】后台回复关键词“数据智能”可免费下载数据猿最新发布的完整高清版《2021中国数据智能产业发展报告》 大数据产业创新服务媒体 ——聚焦数据 改变商业 在中国云计算市场&#xff0c;腾讯云长期坐着第二把交椅。但是&#xff0c;这两年华为云发展太快&#xff0c…

[nlp] 小傻学数据预处理

[nlp] 小傻学数据预处理 1. 分词1.1 分词方法1.1.1 基于规格&#xff08;词典、词库&#xff09;1.1.2 基于知识理解1.1.3 基于(词频)统计 1.2 分词工具1.3 jieba分词原理1.3.1 前缀词典1.3.2 有向无环图生成1.3.3 计算概率最大路径 2 文本纠错2.1 why&#xff1f;2.1.12.2 英文…

基于STM32的酒驾监控系统设计与实现(OneNet云平台)

一、设计需求 1.1 设计需求总结 随着社会的发展和人们生活水平的提高,汽车已经成为人们出行的主要代步工具,与此同时,酒后驾车所引发的事故越来越多,对人们的生命安全带来了威胁。为了控制酒后驾车,本文设计了一款能够安装在车辆驾驶室内的酒后驾车监测系统。 基于STM3…

互联网时代“陨落”,国家发布元宇宙战略的信号对失业和担心失业的我们带来了什么启迪?

互联网这头“猪 ”真的掉下来了 流量红利已经一去不复返了&#xff01;3年前业界其实已经发出各种密集信号&#xff0c;在当时无论是BAT还是一些经济学家在3年前都已经预测过&#xff0c;互联网的流量模式已经衰竭&#xff0c;并且它将一去不复返。 曾经处于互联网大潮的我们…

架构之争:数用一体VS数用分离,谁才是永远滴神

文章目录 &#x1f34f;1 数用分离为什么不适合现代技术应用模式了&#xff1f;&#x1f34e;1.1 信息化前期阶段数用分离的价值&#x1f350;1.2 数字化效率加快的背景下&#xff0c;数用一体或是新模式&#x1f34a;1.3 数用分离与数用一体对比模式 &#x1f34c;2 smardaten…

互联网定位技术小谈

小编刚刚入驻了阿里云先知社区&#xff0c;整理发文&#xff1a; https://xianzhi.aliyun.com/forum/read/775.html 欢迎点评&#xff01;首发保护的原因&#xff0c;本次发文将延迟一周更新到这里。这篇文章不在openGPS.cn站点首发 诚邀阿里云先知社区邀请&#xff0c;不胜感…

依托开源技术,中国联通研发CU-DC/OS推进IT综合治理的实践

背景&#xff1a;中国联通作为一个有IT历史背景的公司&#xff0c;和现今其他靠IT驱动的服务业公司一样有一定的历史包袱。由于整个IT系统渐进发展&#xff0c;产生了新老系统并存、资源分散、设备异构、软件环境异构等诸多问题。孤岛式的IT资源和IT能力服务制约了企业转型现代…

图像处理问题解决师——求取每个颗粒到其他颗粒边缘的最近距离

图像处理问题解决师——求取每个颗粒到其他颗粒边缘的最近距离 问题描述解决思路图片读入并去掉小噪声 bwareaopen()计算连通域边缘点 bwboundaries()双层for循环求解最近边缘可视化最后效果Matlab代码链接问题描述 需要解决的图像 此图像处理实际问题来自工程中遇到的实际问题…

Arduino通过RXTX联通JAVA实现数字温度计案例

相关项目已经上传到个人博客项目中&#xff0c;供学习使用 代码资源链接如下&#xff1a;https://download.csdn.net/download/qq_41662881/12917318 关键词 OLED显示RXTX、IIC通信数据库连接存储实时检测&#xff08;1s/次&#xff09;数据分析任意温湿度上下限报警Arduino u…