该楼层疑似违规已被系统折叠 隐藏此楼查看此楼

gets(szExpression);

// 中缀表达式转后缀表达式,结果保存在expression中

for (int i = 0; i < strlen(szExpression); i++)

{

if (isspace(szExpression[i])) // 空白字符

{

if (bFindBegin)

{

expression[num].type = 1;

expression[num].element.int_element = atoi(pbegin);

num++;

bFindBegin = false;

}

continue;

}

if (isdigit(szExpression[i])) // 数字字符

{

if (!bFindBegin)

{

pbegin = &szExpression[i];

bFindBegin = true;

}

continue;

}

c = szExpression[i];

if (c == '+' || c == '-' || c == '*' || c == '/' || c == '(' || c == ')') // 操作符字符

{

if (bFindBegin)

{

expression[num].type = 1;

expression[num].element.int_element = atoi(pbegin);

num++;

bFindBegin = false;

}

if (c != ')')

{

if (!isEmpty(pSymboolStack)) // 存在操作符

{

if (c == '(') // 直接入栈

push(pSymboolStack, c);

else {

do

{

char topElement = top(pSymboolStack);

if (compare(topElement, c) >= 0 && topElement != '(') // 优先级不低于c且栈顶不等于'(',则出栈

{

expression[num].type = 2;

expression[num].element.char_element = topElement;

num++;

pop(pSymboolStack);

}

else

break;

} while (!isEmpty(pSymboolStack));

// c入栈

push(pSymboolStack, c);

}

} // 不存在操作符,直接入栈

else

push(pSymboolStack, c);

}

else // c == ')'

{

while( (c =top(pSymboolStack)) != '(')

{

expression[num].type = 2;

expression[num].element.char_element = c;

num++;

大整数算术求值 c语言 栈,用C语言实现 多位整数的四则运算,用栈,例如56*(12+20)-102/2...相关推荐

  1. python输入一个三位数、输出它的逆序数值_c语言 从键盘输入一个三位数,输出该数的逆序数。c语言中从键盘输入一个三位整数...

    c语言 从键盘输入一个三位数,输出该数的逆序数. c语言中从键盘输入一个三位整数 www.zhiqu.org     时间: 2020-12-08 c语言中从键盘输入一个三位数,输出该数的逆序数,可以 ...

  2. 在python中输入10个整数并求出最大值_python练习题 :用户任意输入10个整数到列表中,然后由大到小排列并输出。...

    一:填空题: 1.python是一种面向_对象 __的高级语言. 2.python可以在多种平台运行,这体现了python的___可移植___特性. 3.python源代码被解释器转换后的格式为___ ...

  3. 【C语言】分段函数求值 控制输出格式 float精确到小数点后几位

    案例如下 //分段函数求值 #include <stdio.h> //#include <math.h> int main() {float x,y;printf(" ...

  4. 单链表实现集合的交并差Java_单链表表示的集合交,并,差运算,设计采用定义集合,用集合运算表达式求值的方式进行。C语言实现。...

    #includetypedef struct LNode// 定义结构体类型指针 { char data; struct LNode*next; }*pointer; void readdata(po ...

  5. c语言字符输出128,如何将128位整数转换为C中的十进制ASCII字符串?

    部门不是必需的: #include #include typedef unsigned long uint32; /* N[0] - contains least significant bits, ...

  6. 栈的应用-算数表达式求值

    List item ** 实验要求** 河 南 师 范 大 学 20学年-21学年第 1 学期 数据结构实验任务书 专业名称: 实验学时: 4 课程名称:数据结构 任课教师: 王亚丽 实验题目:栈的应 ...

  7. 栈 -- 顺序栈、链式栈的实现 及其应用(函数栈,表达式求值,括号匹配)

    文章目录 实现 顺序栈实现 链式栈实现 应用 函数栈 的应用 表达式求值中 的应用 括号匹配中 的应用 我们使用浏览器的时候经常会用到前进.后退功能. 依次访问完一串页面 a – b – c之后点击后 ...

  8. C语言整数的取值范围

    文章目录 1.整数的取值范围 2.获取视频教程 3.版权声明 整数是我们生活中常用的数据类型,也是编程中常用的一种数据,C语言使用int关键字来定义整数变量(int是 integer 的简写). 在定 ...

  9. 栈的应用——表达式求值

    概要 表达式求值问题可以说是一个经典问题.具体思路就是首先把输入的中缀表达式转换为后缀表达式,然后再根据后缀表达式进行计算求值. 中缀表达式转换为后缀表达式 首先我们设定运算符在进栈前与进栈后的优先级 ...

最新文章

  1. Linux命令(一)
  2. ARM 之十四 ARMv9 架构前瞻
  3. 项目一感应垃圾桶(Wemos)
  4. js split参数为无效字符_js使用split函数按照多个字符对字符串进行分割的方法
  5. 简明Python教程学习笔记_1_基本
  6. 极致业务基础开发平台
  7. java 组合 遍历 算法_java编程n个集合每次从每个集合里面取出一个元素组成一个字符串列出所有组合算法...
  8. MS CRM 2011 如何向自定义Ribbon按钮传递参数
  9. W25Q64简介(译)
  10. 使用PS制作毛玻璃效果
  11. 手机开发APP整体界面设计工具之墨刀---没用过就知道它很牛掰
  12. try{}里有一个return语句,那么紧跟在这个try后的finally{}里的代码会不会被执行,什么时候被执行,在return前还是后?
  13. 大数据----数据仓库设计基础(实列演示)
  14. python网络图片下载---跟我一起爬王者农药皮肤吧
  15. 通过python爬取笔趣阁小说,获取图片保存本地,数据保存mysql
  16. 云计算的优势和未来发展趋势
  17. 盘点那些争议最大的编程观点,你是什么看法呢?
  18. 基于Qt、FFMpeg的音视频播放器设计一
  19. 阿里妈妈自研CTR预估核心算法MLR
  20. 趣链科技张帅:多种技术交叉融合助推区块链应用开拓全新局面 | FBEC 2019专访...

热门文章

  1. element-ui简单使用
  2. Ubuntu的配置(以ubuntu 20.04桌面版为例)
  3. python读取excel列数据库_python中读取excel数据库
  4. C语言 数组排序 – 快速法排序 - C语言零基础入门教程
  5. php 图片印章_php工具型代码之印章抠图
  6. cocos android-1,Cocos2D-Android-1之源码详解:5.Box2dTest
  7. h5弹框滑动 ios_微信 iOS 版更新:细节大更新,你值得拥有
  8. ajax mysql点赞_php+mysql结合Ajax实现点赞功能完整实例
  9. java repaint 重画图形,学习笔记:WINDOWS的图形重绘基础
  10. php 统计目录大小,PHP 统计目录大小