c语言计算器括号怎么解决,C语言计算器,该如何解决
C语言计算器
要求 是自己输入算式,要考虑括号,可以实现小数的加减乘除和幂运算
下面这个是老师的示例,只能实现整数并且不能考虑括号
望大神赐教
奉献出100的分数
#include
#define smax 10
#define emax 255
int power(int x,int y)
{
int t,s=1;
for (t=0; t
s=s*y;
return s;
}
int calc(char op, int x, int y)
{
int num;
if (op=='+')
num=x+y;
else if (op=='-')
num=y-x;
else if (op=='*')
num=y*x;
else if (op=='/')
num=y/x;
else if (op=='^')
num=power(x,y);
return num;
}
int rank(char op)
{
int r;
if (op=='+') r=0;
else if (op=='-') r=1;
else if (op=='*') r=2;
else if (op=='/') r=2;
else if (op=='^') r=3;
return r;
}
void main()
{
//栈
int s[smax];
char op[smax];
int top=0;
int otop=0;
//其他变量
int i,num,x,y;
int ans=0;
int rtop,rinput;
char o;
//表达式存储
char ex[emax];
//实现计算器的功能
//输入表达式
scanf("%s", ex);
i=0;
num=0;
//读出每个字符
s[0]=0;
top=1;
op[0]='+';
otop=1;
while (1)
{
//分解每个数和符号
if (ex[i] >=48 && ex[i]<58)
{
//读到数字
num=num*10+ex[i]-48;
}
else
{
//前一个数字已经输入完毕
//数字入栈
s[top]=num;
top=top+1;
num=0;
if (ex[i]==0)
break;
else
{
//判断符号优先级
//如果优先级低于当前栈顶的符号的优先级,计算栈顶符号对应的运算
rinput=rank(ex[i]);
//符号栈顶元素出栈
otop=otop-1;
o=op[otop];
rtop=rank(o);
while (rtop>=rinput && rtop!=0)
{
//计算
//数字出战
top=top-1;
c语言计算器括号怎么解决,C语言计算器,该如何解决相关推荐
- c语言(cn)括号的作用,c语言小括号的用法
c语言小括号的用法 C语言的小括号里面表示一条语句,返回值是多条语句中最靠右的语句的返回值,比如(a=2,b=3,c=a+b),返回值就是c的值.下面小编就为大家介绍c语言小括号的用法. c语言小括号 ...
- c语言尖括号 注释,关于C语言include尖括号和双引号的对话
A: #include "..." 和 #include <...> 有什么区别? B: 他喵的, 这么简单的问题. 尖括号是先在系统目录下找, 双引号是首先在当前目录 ...
- C语言之C语言小括号表达式,C语言逗号运算符,C语言等号运算符
公众号:嵌入式不难 本文仅供参考学习,如有错误之处,欢迎留言指正. 结论 ()具有最高优先级,相等优先级的多个表达式时,()具有从左至右的结合性,即会先计算最左边的表达式,然后依次向右计算表达式 ,运 ...
- C语言利用前缀表达式实现复杂科学计算器
用C语言实现的科学计算器,支持2种常量,10种基本函数,Ans寄存器.相对来说拓展性应该是不错的,思路是首先化简复杂名称的函数名和常量名,然后把表达式转换成前缀表达式,再直接处理前缀表达式即可.因此对 ...
- c语言一串字符括号配对,C语言实现括号匹配的方法
1 要求 编写程序检查该字符串的括号是否成对出现,而且不能交叉出现. 输入: 一个字符串,里边可能包含"()"."{}"."[]"三种括号, ...
- C语言项目实战:24点游戏计算器(基于结构体、指针、函数、数组、循环等知识点)
文章目录 C语言项目实战:24点游戏计算器(基于结构体.指针.函数.数组.循环等知识点) 前言:24点游戏计算器的规则如下 一.项目的创建标 1.选择项目 2.输入项目名称和路径 3.创建头文件Mai ...
- 批处理解决“易语言难题”
为什么80%的码农都做不了架构师?>>> 发现还没有Win批处理的,也就是DOS,我来凑个热闹,哈哈- @maxos 汇总贴 @APPLEUFO 原题链接 不罗嗦,上代 ...
- C语言-人狼羊菜问题-最容易看懂的解决方法及代码
C语言-人狼羊菜问题-最容易看懂的解决方法及代码 参考文章: (1)C语言-人狼羊菜问题-最容易看懂的解决方法及代码 (2)https://www.cnblogs.com/zandbin/p/5341 ...
- 专访 | 德国大神Hans Uszkoreit:语言才是AI的关键,深度学习无法解决NLP的核心问题...
德国人工智能研究中心科技总监Hans Uszkoreit博士认为:语言技术是人工智能的核心部分,但当前的深度学习方法还不足以解决NLP领域的核心问题. 在AI科技大本营微信公众号(rgznai100) ...
- 安卓多语言设置,深渊巨坑,适配7.0以上,并且解决因WebView产生的问题
前言 安卓的多语言设置配置中strings.xml我就不说怎么弄了,主要说一下后续遇到的坑 正文 上个月接到需求,要给app内添加多语言设置,我心想没啥难的,配置一下strings.xml,加个修改的 ...
最新文章
- 利用numpy对已知样本点进行多项式拟合
- Apache Dubbo 高危漏洞通告
- Wannafly挑战赛29题解
- Linux下rz,sz
- San介绍以及在百度APP的实践
- matlab中的方波信号图片_基于Matlab的雷达信号处理仿真
- 微信团队分享:微信移动端的全文检索多音字问题解决方案
- Flask爱家租房--房屋管理(获取房屋详情)
- echo中使用逗号和句号的区别
- 社区计生民生工程知识竞赛小结_幸福之基 和谐之本 内江经开区打造精品民生工程...
- 收听NSNotificationCenter发出的通知
- par函数的bg参数-控制图片的背景色
- 电阻电容封装选型经验详解
- 西安大略大学计算机专业排名,加拿大大学计算机专业排名一览
- SAS和SATA它两的相同点与不同点
- [BZOJ3144]切糕
- 《调研报告》:黑灰产哄抢消费券的两种方式
- 幼儿抽象逻辑思维举例_熊孩子到底在想什么—幼儿思维干货速记!
- python:验证码识别
- 一、图像传感器CCD和CMOS