c语言 数据结构 多为整数带括号四则运算,用C语言实现 多位整数的四则运算,用栈,例如56*(12+20)-102/2...
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
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...相关推荐
- C语言为运算表达式添加括号,读书笔记-c语言-运算符与表达式
1.算术运算符:+-*/% %要求参与运算的两个量必须是整型或字符型的,实型(float,double等)的数据不能做%运算. 算术表达式 运算符和数据可以组成运算的式子,称为表达式.举例:10+20 ...
- 【C语言】一文带你简单了解C语言
这里写目录标题) 引言 C语言概述 基础语法 数据类型 运算符 循环语句 分支语句 函数 数组 指针 文件操作 内存管理 高级特性 结构体 枚举类型 联合体 预处理器 应用场景 操作系统 编译器 游戏 ...
- c语言中输入格式带括号,C语言中printf()后的括号里面的怎么写,表示什么?...
int printf(const char *format,[argument]); format 参数输出的格式,定义格式为: %[flags][width][.perc] [F|N|h|l]typ ...
- 语言中什么时候加大括号_日本留学语言学校申请季你知道是几月吗?从什么时候开始准备...
WordSunny日本留学 #选校定位 #文书撰写 #网申面试 #录取签证 语言学校申请季有哪几个月? 来日本读书大多数同学都会走语言学校,学校不止提供优秀的教学,还会帮助大家做一些升学规划. ...
- c语言求玫瑰花数带注释,新人 用C语言画一朵玫瑰
当前位置:我的异常网» C语言 » 新人 用C语言画一朵玫瑰 新人 用C语言画一朵玫瑰 www.myexceptions.net 网友分享于:2013-12-03 浏览:51次 新人求助 用C语言 ...
- c语言循环语句中花括号的作用,c语言中用括号将花括号括起来给变量赋值
#define max(x,y) ({ \ typeof(x) _x = (x);\ typeof(y) _y = (y);\ (void) (&_x == &_y);\ _x > ...
- c语言中中括号的作用,括号的拼音,c语言中中括号什么意思?[ ]?
该 我个人觉得这是表示了那个汉字的在这首歌里面的读音.唱的时候虽然唱为假名A,表达的意思确实汉字B,或者可以同时表示汉字与假名两种不同的意思. 水树奈奈有一首歌叫<Eternal Blaze&g ...
- python反转一个整数、123变成321,python反转一个三位整数的多种实现方案
在LintCode上练习遇到这个问题,查阅资料找到多种方法,总结如下. 输入 输出 123 321 第一种:整数方法取余取整实现 class Solution: """ ...
- 表达式求值:从“加减”到“带括号的加减乘除”的实践过程
本文乃Siliphen原创,转载请注明出处:http://blog.csdn.NET/stevenkylelee ● 为什么想做一个表达式求值的程序 最近有一个需求,策划想设置游戏关卡的某些数值,这个 ...
最新文章
- 页面与ViewModel(上)
- angular2 step by step #1 - environment setup
- T和ClassT以及Class?的理解
- 二分匹配(匈牙利算法)模板
- linux函数实验报告,linux实验报告
- uvalive4840(n*n方阵的最小花费)
- Linux命令(9)—— 文件的压缩与解压缩
- Smaug Coverage
- JavaSE进阶学习笔记-目录汇总(待完成)
- C++学习之路 | PTA乙级—— 1041 考试座位号 (15 分)(精简)
- 大专学的pHp找什么工作,大专毕业能做什么工作 毕业都去干嘛了
- 在CentOS7下安装MySQL8数据库
- Windows漏洞:MS08-067远程代码执行漏洞复现及深度防御
- LG电子成功进行太赫兹频段6G无线信号传输,距离超过100米
- Linux环境下安装单实例MySQL 5.7
- Linux之POSTFIX邮件服务
- 清华大学操作系统OS学习(八)——虚拟存储概念
- 知己知彼-关于Oracle安全比特币勒索问题揭秘和防范
- 图书管理系统完整代码
- 计算机专业课件ppt背景,ppt背景图片怎么设置