/*记得数据结构老师说过可以一边进行中缀表达式的后缀转换
/* 一边进行计算器的运算,今天无聊就把这个大体实现了一下
/*不过还有一些问题:1.还不能支持所有的数据类型
/* 2.对于多位数处理还有BUG
/* 3.对于右结合性的运算符还没有实现 */
/*先这样吧 有时间再改 */
#include<stdio.h>
#include<ctype.h>
#include<stack>
using namespace std;
stack<char> s;
stack<int> s2;
int calculate_mark(char a); //判断运算符优先级
void calculate(char *p); //栈的实现部分
void calculate_stack(char b); //数值的加减乘除处理
int calculate_mark(char a)
{
switch(a)
{
case '+':
case '-':
return 1;
case '*':
case '/':
return 2;
case '(':
return 3;
default:
{
printf("运算符错误或不存在!");
exit(1);
}
}
}
void calculate_stack(char b)
{
int num1,num2,num3;
num1=s2.top();
s2.pop();
num2=s2.top();
s2.pop();
if(b=='+')
num3=num1+num2;
else if(b=='-')
num3=num2-num1;
else if(b=='*')
num3=num1*num2;
else if(b=='/')
num3=num2/num1;
s2.push(num3);
}
void calculate(char *p)
{
while(*p)
{
if(isdigit(*p))
s2.push(*p-'0');
else
{
if(s.empty())
s.push(*p);
else if(*p==')')
{
while(s.top()!='(')
{
calculate_stack(s.top());
s.pop();
}
s.pop();
}
else if(*p=='(')
{
s.push(*p);
}
else if(calculate_mark(s.top())<calculate_mark(*p))
s.push(*p);
else if(calculate_mark(s.top())>=calculate_mark(*p))
{
while(!s.empty()&&s.top()!='('&&calculate_mark(s.top())>=calculate_mark(*p))
{
calculate_stack(s.top());
s.pop();
}
s.push(*p);
}
}
p++;
}
while(!s.empty())
{
calculate_stack(s.top());
s.pop();
}
}
int main()
{
char *p="3*(6+1)-4/2+6";
calculate(p);
printf("%d\n",s2.top());
return 0;
}
相关推荐
C++使用MFC编写一个简易计算器应用程序
本篇文章主要讲解利用C++中的MFC框架编写一个简易的计算器应用程序,希望通过此例能让大家够很好地理解MFC框架。 一.MFC简介 1.定义 MFC的全称是Microsoft Foundation Classes是微软基础类库的简称,是微软公司实现的一个C++类库,其中,主要封装了大部分windows API函数。 2.设计原理 MFC是应用程序开发框架,是库的集合,它向程序开发人员提供了一组服务来协助开发。通常情况下,应用程序开发框架被设计为尽可能地使开发过程合理化以及简化繁琐的编程任务。MFC可以简化大
【Python工具】——制作一个简单具有可视化界面的科学计算器(用Anacanda的Jupyter Notebook实现一个计算器小工具)+实现多功能计算器(升级版)+基于PYQT的简易计算器
小北的本篇博客是Python实现一个计算器的小程序涉及到了tkinter 的一个使用和掌握友友们要是还不是很懂tkinter 的话,可以康康下面这个视频~Python超全tkinter案例讲解,基础教学视频!!小北目前是一名在校大学生,正在学习Python,接触到了PYQT,利用所学的PYQT知识制作了一个简易计算器,实现了win11自带计算器的部分功能,并可以进行进制转换。限本人能力有限,所以本文章会与诸多不合理或不专业之处,还请友友们谅解,多多指教~
简易计算器(小程序)
同过动手制作简易的计算器,了解小程序的特点,写法等等
利用C语言实现简单的计算器程序
然后,通过菜单让用户选择需要执行的运算。根据用户的选择,在程序中使用条件语句进行相应的运算,并将结果输出给用户。通过定义变量、获取用户输入、使用条件语句和循环语句,我们可以实现一个功能完善且易于使用的计算器。而使用C语言编写一个简单的计算器程序,则是一个很有挑战性和有趣的任务。因此,我们的程序需要能够接受用户输入的两个数,并根据用户选择执行相应的运算。分支中,我们可以使用简单的算术运算符来执行相应的运算,并输出结果给用户。printf(\请选择需要执行的运算:\n\printf(\1. 加法\。
简单的计算器程序非常好用
简单的用JAVA编的计算器程序,用于简单的计算数字
一个非常简单的计算器源代码
这个计算器可作一般的加减乘除的运算.这个计算器非常简单,很容易就可以看懂的.
【C语言】实现简易计算器
实现一个简易的计算器,可以计算两个整数的加减乘除。
一个简易的计算器 java小程序
一个简易的计算器,能实现加减乘除 ,sqrt ,1/x , %,删除的功能
C#winform第一个小程序——简易计算器
分享我的第一个完整的C#winform小程序,只为记录! 写这个小程序的时候,我连语法还都不怎么会,只能边写边学,拖控件、设置属性也还是临时学会的。所以会有比较大的缺陷,而且使用的语法都是比较简单的,没有涉及稍微复杂一点点的代码。因为初学,所以很多地方不完善,已经做到当时尽可能的最好了。 写这个程序的时候一开始真的是一点头绪都没有的,当时一片空白,无从下手,但是最
C语言一个简易计算器程序
用C语言代码编写的一个简易计算器,可以实现加减乘除的功能!
Innovus 安装全过程
【代码】Innovus 安装全过程。
仿照Windows的计算器,编写一个简易的计算器程序,实现加、减、乘、除等运算。
仿照Windows的计算器,编写一个简易的计算器程序,实现加、减、乘、除等运算。 偷懒了很多,将就着用吧: import java.awt.FlowLayout; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import javax.swing.*; public class Calculat...
【YOLO 系列】基于YOLO V8的智能车载交通标志识别系统【python源码+Pyqt5界面+数据集+训练代码】
本文详细介绍了基于YOLO V8构建智能车载交通标志识别系统的完整流程。从环境搭建、数据集准备、模型训练到PyQt5图形界面开发,提供了Python源码和实战代码,帮助开发者快速实现高精度、实时的交通标志检测应用,提升驾驶辅助系统的开发效率。
使用C#windows窗体应用程序做一个简易计算器
使用C#windows窗体应用程序做一个简易计算器(大佬请划走)
Calibre PEX提参实战:如何用hcell和xcell文件精准屏蔽模块(附避坑指南)
本文深入解析Calibre PEX工具中hcell与xcell文件的协同工作机制,提供模块级寄生参数提取方案。通过实战案例和避坑指南,帮助工程师精准屏蔽已验证IP模块,提升仿真效率和数据一致性,适用于65nm以下工艺节点的复杂SoC设计。
Java 开发打飞机小游戏(附完整源码)
上图 写在前面 技术源于分享,所以今天抽空把自己之前用java做过的小游戏整理贴出来给大家参考学习。java确实不适合写桌面应用,这里只是通过这个游戏让大家理解oop面向对象编程的过程,纯属娱乐。代码写的很简单,也很容易理解,并且注释写的很清楚了,还有问题,自己私下去补课学习。 完整代码 敌飞机 import java.util.Random; 敌飞机: 是飞行物,也是敌人 public class Airplane extends FlyingObject implements Enemy {
java简易科学计算器_编写java application程序实现一个简易计算器
展开全部Java计算32313133353236313431303231363533e58685e5aeb931333330323238器源代码:importjava.awt.*;importjava.awt.event.*;importjavax.swing.*;/**********************Java计算器主类*********************/publicc...
【小白指南】如何将deepseek引入WPS\Word\Excel中去?
如何将deepseek引入WPS\Word\Excel中去?纯小白都能看的懂,一步步操作就能行
java计算器流程图_求一个用java编的简易计算器的程序及其流程图。
ann xue2016-09-02import javax.swing.*;import java.awt.*;import java.awt.event.*;public class calculator implements actionlistener{string s="",s1;double d1,d2;jframe jf = new jframe("小计算器by graduate") ...
Python在振动信号处理中的应用(一):振动信号消除多项式趋势项
文章目录一、概述二、最小二乘法去除趋势项原理三、python模块介绍3.1 scikitlearn简介(1)转化器(Transformer)(2)估计器(Estimator)3.2 线性回归LinearRegression3.3 多项式PolynomialFeatures3.4 工作流Pipeline四、python代码实现4.1 构造模拟信号4.2 编写去除趋势项主代码4.3 展示算法效果五、TIPS 一、概述 在振动测试过程中,传感器或采集设备由于自身性能问题或受环境干扰(如温度、供电等影响),容易
2024届数字IC秋招-华为机试-数字芯片-笔试真题和答案(三)(含2022年和2023年)
此部分包含华为机试真题,方向是数字芯片,内容详细包括设计、验证、后端等,大部分题目给出参考答案。华为机试都是从题库里抽题目,所以这些题目还是很有参考性的,甚至是完全一样,可以搜到的。(题目内容较多,将分开编写几个文章)A.错误B.正确参考答案:BA.getB.try_getC.peekD.put参考答案:B。
第一个android程序简易计算器
感谢慕课网免费提供了学习途径和优秀的课程。 本文参考借鉴了一下博客大部分程序,bi
Python爬虫实战【房产刚需专属】:爬取链家/贝壳完整房源数据,精准筛选刚需房源【房价+户型+地段+面积+装修】
本次爬虫的核心亮点就是刚需专属筛选,我已经把刚需买房的主流筛选逻辑封装为独立函数,你只需要修改筛选参数,就能精准匹配你的需求无需懂Python语法,直接改数字/文字即可!本次爬虫是刚需买房+Python爬虫实战的完美结合。
做一个控制台简易版具有 加减乘除功能的计算器,并使用异常处理程序
package com.xiaoliang.test; import java.util.Scanner; /** * 做一个控制台简易版具有 加减乘除功能的计算器,并使用异常处理程序 * @author admin *首先创建一个死循环,如果输入无误测跳出循环; */ public class NumTest { public static void main(String[] args) { ...
精雕软件(JDpaint) 5.5 绿色版
精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版
蓝牙模块HM-10手册
蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。
python简易计算器---编写一个能计算两个数字加减乘除的小程序
任务描述 相关知识 input 函数的使用 Python 的条件语句 编程要求 测试说明 任务描述 本关任务:编写一个能计算两个数字加减乘除的小程序。 相关知识 为了完成本关任务,你需要掌握: input 函数的使用; Python 的条件语句。 input 函数的使用 Python 2 中的输入函数有input和raw_input,而 Python 3 中的输入函数只有input,这里只讲后者。每次使用input函数,默认从缓冲区读取一行内容,并以字符串形式返回内容,而且给函数传的参数可作为输出内容,输出
RU DOS版、EFI版32bit/64bit BIOS常用工具
DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。
1万+



被折叠的 条评论
为什么被折叠?



