c语言计算器

article/2025/11/7 18:46:47

c语言计算器两种方法

//一般做法
#include<stdio.h>
#include<windows.h>
//#include<assert.h>
void menu()
{printf("**************************\n");printf("****欢迎来到计算器页面****\n");printf("**** 1.add    2.mul  *****\n");printf("*****3.sub    4.div1 *****\n");printf("*****0.exit          *****\n");printf("**************************\n");
}int add(int x, int y)
{return x + y;
}int mul(int x, int y)
{return x * y;
}int sub(int x, int y)
{return x - y;
}int div1(int x, int y)
{return x / y;
}int main()
{int n = 1;menu();while (n){printf("请输入选项:\n");scanf("%d", &n);int x = 0, y = 0;/*printf("请输入两个整数!\n");scanf("%d%d", &x, &y);*/    //若将两个数字输入放在此处会出现输入错误时不能退出系统,而是显示“输入两个整数”的提示switch (n){case 1:printf("请输入两个整数!\n");scanf("%d%d", &x, &y);printf("%d\n", add(x, y));break;case 2:printf("请输入两个整数!\n");scanf("%d%d", &x, &y);printf("%d\n", mul(x, y));break;case 3:printf("请输入两个整数!\n");scanf("%d%d", &x, &y);printf("%d\n", sub(x, y));break;case 4:printf("请输入两个整数!\n");scanf("%d%d", &x, &y);printf("%d\n", div1(x, y));break;case 0:printf("退出计算器!\n");break;default:printf("输入错误,请重新输入!\n");}}
}


//使用函数指针数组解决计算器问题#include<stdio.h>
#include<windows.h>
//#include<assert.h>void menu()
{printf("**************************\n");printf("****欢迎来到计算器页面****\n");printf("**** 1.add    2.mul  *****\n");printf("*****3.sub    4.div1 *****\n");printf("*****0.exit          *****\n");printf("**************************\n");
}int add(int x, int y)
{return x + y;
}int mul(int x, int y)
{return x * y;
}int sub(int x, int y)
{return x - y;
}int div1(int x, int y)
{return x / y;
}int main()
{int n = 1;menu();while (n){printf("请输入选项:\n");scanf("%d", &n);int(*arr[5])() = { 0,add,mul,sub,div1 };//转移表//定义一个函数指针数组,存放函数地址if (n >= 0 && n < 5){int x = 0, y = 0;printf("请输入两个整数:>\n");scanf("%d%d", &x, &y);printf("%d\n", (*arr[n])(x,y));//输出结果}else{printf("输入有误,请重新输入!\n");scanf("%d", &n);}}system("pause");return 0;
}
两种方法相比,第一种相似代码较多,比较冗余;第二种代码简洁直观,程序效率高。

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

相关文章

一个计算器的C语言实现

今天在读《编译原理及实践》时&#xff0c;看到了一个简单的整数计算器的实现。 按照书上的思路&#xff0c;我稍微进行了扩展&#xff1a; 1、从整数计算器扩展到小数计算器。 2、支持除法 3、支持空字符。 运行效果如下&#xff1a; 代码很简单&#xff0c;如下&#xf…

简易计算器(C语言实现)

算法核心&#xff1a; 一般表达式都采用的中缀表达式&#xff0c;而中缀表达式不仅要依赖运算符优先级&#xff0c;还要处理括号。所以&#xff0c;对于中缀表达式&#xff0c;一般是先将其化作后缀表达式&#xff0c;在后缀表达式中只有操作符和运算符&#xff0c;而且越放在…

如何用C语言写出一个简单的计算器(简单实现)

计算器的要求&#xff1a; 1.能够对整数进行加减乘除运算 2.能够重复运算 3.能够显示错误 实现1&#xff1a; // //写一个计算器 //整数的加、减、乘、除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…

C语言写的一个简单的计算器

大学的第一学期就这样结束了。前阵子临近放假&#xff0c;不知道该干嘛&#xff0c;就分别用java和C语言写了两个东西。java写了个文件查找的程序。C语言写了个简易的计算器。至于为什么写计算器~因为刚学C语言的时候&#xff0c;还没摸过VC&#xff0c;还没碰过编译器就看了几…

用C语言实现一个简易的计算器

计算器可实现加减乘除的功能 首先写一个简单都菜单函数menu: void menu() {printf("*******************************************\n");printf("******1.add 2. sub *********\n");printf("******3.mul 4.div *****…

C语言实现简单的计算器(C语言入门1)

程序介绍 本程序是一个简易的计算器&#xff08;支持小数运算&#xff09;&#xff0c;计算能力是四则运算&#xff08;加减乘除&#xff09;。需要的知识内容&#xff1a;函数&#xff0c;选择语句&#xff0c;循环语句。 源码展示 #include <stdio.h> //加法模块 do…

C语言实现简易计算器

通过C语言实现一个简易的计算器 计算器可实现加减乘除等一系列运算 方法一&#xff1a; 1.程序总体使用switch语句实现多分支选择 switch (input) {case 1:printf("请输入两个操作数\n");scanf("%d%d", &x, &y);Add(x, y); break;case 2:print…

C语言学习:用C语言实现简单的计算器

用C语言编写一个简单的可以进行加减乘除运算混合运算的计算器的方法&#xff1a; # include <stdio.h>int main() {char operator;double firstNumber,secondNumber;printf("输入操作符 (, -, *,/): ");scanf("%c", &operator);printf("输…

用C语言写一个计算器

用C语言写一个计算器&#xff0c;除了四则混合运算之外&#xff0c;还支持三角函数和绝对值等函数。 PS E:\Code\PL\calc> .\a.exe abs(3*5-4^2) abs(3*5-4^2)1.000000 25-76*(4-5) 25-76*(4-5)12.000000文章目录 1. 加减法运算2. 加法和乘法3. 四则混合运算4. 浮点型…

使用C语言构造一个简单计算器

本节我们用小学生知识来制作一个简单的计算器&#xff0c;可以运算加&#xff0c;减&#xff0c;乘&#xff0c;除&#xff0c;以及余数的运算。 在这节代码中用到switch语句&#xff0c;因为要输入运算符&#xff0c;所以注意%c的对应 接下来上代码&#xff1a; #include &…

用c语言编写一个简易计算器

更高级的计算器移步http://t.csdn.cn/E2rVG 文章目录 前言一、原理是什么&#xff1f;二、使用步骤 1.代码总结 前言 利用C语言编写一个能够进行简单加减乘除的计算器 一、原理是什么&#xff1f; 利用C语言自带算法&#xff0c;进行简单的逻辑运算 二、使用步骤 1.代码 …

【C语言】计算器

&#x1f680;write in front&#x1f680; &#x1f50e;大家好&#xff0c;我是謓泽&#xff0c;希望你看完之后&#xff0c;能对你有所帮助&#xff0c;不足请指正&#xff01;共同学习交流&#x1f50e; &#x1f3c5;2021年度博客之星物联网与嵌入式开发TOP5&#xff5e;2…

通信行业研究宝典

文章大纲 哑铃型布局&#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日…