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

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. C语言为运算表达式添加括号,读书笔记-c语言-运算符与表达式

    1.算术运算符:+-*/% %要求参与运算的两个量必须是整型或字符型的,实型(float,double等)的数据不能做%运算. 算术表达式 运算符和数据可以组成运算的式子,称为表达式.举例:10+20 ...

  2. 【C语言】一文带你简单了解C语言

    这里写目录标题) 引言 C语言概述 基础语法 数据类型 运算符 循环语句 分支语句 函数 数组 指针 文件操作 内存管理 高级特性 结构体 枚举类型 联合体 预处理器 应用场景 操作系统 编译器 游戏 ...

  3. c语言中输入格式带括号,C语言中printf()后的括号里面的怎么写,表示什么?...

    int printf(const char *format,[argument]); format 参数输出的格式,定义格式为: %[flags][width][.perc] [F|N|h|l]typ ...

  4. 语言中什么时候加大括号_日本留学语言学校申请季你知道是几月吗?从什么时候开始准备...

    WordSunny日本留学 #选校定位   #文书撰写 #网申面试   #录取签证 语言学校申请季有哪几个月? 来日本读书大多数同学都会走语言学校,学校不止提供优秀的教学,还会帮助大家做一些升学规划. ...

  5. c语言求玫瑰花数带注释,新人 用C语言画一朵玫瑰

    当前位置:我的异常网» C语言 » 新人 用C语言画一朵玫瑰 新人 用C语言画一朵玫瑰 www.myexceptions.net  网友分享于:2013-12-03  浏览:51次 新人求助 用C语言 ...

  6. c语言循环语句中花括号的作用,c语言中用括号将花括号括起来给变量赋值

    #define max(x,y) ({ \ typeof(x) _x = (x);\ typeof(y) _y = (y);\ (void) (&_x == &_y);\ _x > ...

  7. c语言中中括号的作用,括号的拼音,c语言中中括号什么意思?[ ]?

    该 我个人觉得这是表示了那个汉字的在这首歌里面的读音.唱的时候虽然唱为假名A,表达的意思确实汉字B,或者可以同时表示汉字与假名两种不同的意思. 水树奈奈有一首歌叫<Eternal Blaze&g ...

  8. python反转一个整数、123变成321,python反转一个三位整数的多种实现方案

    在LintCode上练习遇到这个问题,查阅资料找到多种方法,总结如下. 输入 输出 123 321 第一种:整数方法取余取整实现 class Solution: """ ...

  9. 表达式求值:从“加减”到“带括号的加减乘除”的实践过程

    本文乃Siliphen原创,转载请注明出处:http://blog.csdn.NET/stevenkylelee ● 为什么想做一个表达式求值的程序 最近有一个需求,策划想设置游戏关卡的某些数值,这个 ...

最新文章

  1. 页面与ViewModel(上)
  2. angular2 step by step #1 - environment setup
  3. T和ClassT以及Class?的理解
  4. 二分匹配(匈牙利算法)模板
  5. linux函数实验报告,linux实验报告
  6. uvalive4840(n*n方阵的最小花费)
  7. Linux命令(9)—— 文件的压缩与解压缩
  8. Smaug Coverage
  9. JavaSE进阶学习笔记-目录汇总(待完成)
  10. C++学习之路 | PTA乙级—— 1041 考试座位号 (15 分)(精简)
  11. 大专学的pHp找什么工作,大专毕业能做什么工作 毕业都去干嘛了
  12. 在CentOS7下安装MySQL8数据库
  13. Windows漏洞:MS08-067远程代码执行漏洞复现及深度防御
  14. LG电子成功进行太赫兹频段6G无线信号传输,距离超过100米
  15. Linux环境下安装单实例MySQL 5.7
  16. Linux之POSTFIX邮件服务
  17. 清华大学操作系统OS学习(八)——虚拟存储概念
  18. 知己知彼-关于Oracle安全比特币勒索问题揭秘和防范
  19. 图书管理系统完整代码
  20. 计算机专业课件ppt背景,ppt背景图片怎么设置

热门文章

  1. 在java代码中设置TextView文本内容可滚动
  2. 二分图匹配(Luogu3386)
  3. Java中的装箱和拆箱剖析
  4. grep命令做永久别名 显示颜色
  5. winform下自绘提示框风格窗体
  6. SQL Reverse函数
  7. CSS中link与import差别
  8. 基础知识—条件判断语句-switch语句
  9. kafka监听topic消费_Kafka消费者-从Kafka读取数据
  10. 案例解读:RMAN 备份控制文件报错 ORA-00230