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语言计算器,该如何解决相关推荐

  1. c语言(cn)括号的作用,c语言小括号的用法

    c语言小括号的用法 C语言的小括号里面表示一条语句,返回值是多条语句中最靠右的语句的返回值,比如(a=2,b=3,c=a+b),返回值就是c的值.下面小编就为大家介绍c语言小括号的用法. c语言小括号 ...

  2. c语言尖括号 注释,关于C语言include尖括号和双引号的对话

    A: #include "..." 和 #include <...> 有什么区别? B: 他喵的, 这么简单的问题. 尖括号是先在系统目录下找, 双引号是首先在当前目录 ...

  3. C语言之C语言小括号表达式,C语言逗号运算符,C语言等号运算符

    公众号:嵌入式不难 本文仅供参考学习,如有错误之处,欢迎留言指正. 结论 ()具有最高优先级,相等优先级的多个表达式时,()具有从左至右的结合性,即会先计算最左边的表达式,然后依次向右计算表达式 ,运 ...

  4. C语言利用前缀表达式实现复杂科学计算器

    用C语言实现的科学计算器,支持2种常量,10种基本函数,Ans寄存器.相对来说拓展性应该是不错的,思路是首先化简复杂名称的函数名和常量名,然后把表达式转换成前缀表达式,再直接处理前缀表达式即可.因此对 ...

  5. c语言一串字符括号配对,C语言实现括号匹配的方法

    1 要求 编写程序检查该字符串的括号是否成对出现,而且不能交叉出现. 输入: 一个字符串,里边可能包含"()"."{}"."[]"三种括号, ...

  6. C语言项目实战:24点游戏计算器(基于结构体、指针、函数、数组、循环等知识点)

    文章目录 C语言项目实战:24点游戏计算器(基于结构体.指针.函数.数组.循环等知识点) 前言:24点游戏计算器的规则如下 一.项目的创建标 1.选择项目 2.输入项目名称和路径 3.创建头文件Mai ...

  7. 批处理解决“易语言难题”

    为什么80%的码农都做不了架构师?>>>    发现还没有Win批处理的,也就是DOS,我来凑个热闹,哈哈- @maxos   汇总贴 @APPLEUFO   原题链接 不罗嗦,上代 ...

  8. C语言-人狼羊菜问题-最容易看懂的解决方法及代码

    C语言-人狼羊菜问题-最容易看懂的解决方法及代码 参考文章: (1)C语言-人狼羊菜问题-最容易看懂的解决方法及代码 (2)https://www.cnblogs.com/zandbin/p/5341 ...

  9. 专访 | 德国大神Hans Uszkoreit:语言才是AI的关键,深度学习无法解决NLP的核心问题...

    德国人工智能研究中心科技总监Hans Uszkoreit博士认为:语言技术是人工智能的核心部分,但当前的深度学习方法还不足以解决NLP领域的核心问题. 在AI科技大本营微信公众号(rgznai100) ...

  10. 安卓多语言设置,深渊巨坑,适配7.0以上,并且解决因WebView产生的问题

    前言 安卓的多语言设置配置中strings.xml我就不说怎么弄了,主要说一下后续遇到的坑 正文 上个月接到需求,要给app内添加多语言设置,我心想没啥难的,配置一下strings.xml,加个修改的 ...

最新文章

  1. 利用numpy对已知样本点进行多项式拟合
  2. Apache Dubbo 高危漏洞通告
  3. Wannafly挑战赛29题解
  4. Linux下rz,sz
  5. San介绍以及在百度APP的实践
  6. matlab中的方波信号图片_基于Matlab的雷达信号处理仿真
  7. 微信团队分享:微信移动端的全文检索多音字问题解决方案
  8. Flask爱家租房--房屋管理(获取房屋详情)
  9. echo中使用逗号和句号的区别
  10. 社区计生民生工程知识竞赛小结_幸福之基 和谐之本 内江经开区打造精品民生工程...
  11. 收听NSNotificationCenter发出的通知
  12. par函数的bg参数-控制图片的背景色
  13. 电阻电容封装选型经验详解
  14. 西安大略大学计算机专业排名,加拿大大学计算机专业排名一览
  15. SAS和SATA它两的相同点与不同点
  16. [BZOJ3144]切糕
  17. 《调研报告》:黑灰产哄抢消费券的两种方式
  18. 幼儿抽象逻辑思维举例_熊孩子到底在想什么—幼儿思维干货速记!
  19. python:验证码识别
  20. 一、图像传感器CCD和CMOS

热门文章

  1. 记一次守护日志导致硬盘空间告警问题
  2. sf上的SIMD的程序库
  3. CRT、Windows API、C/C++标准库、 ATL
  4. GDI GDI+ 的区别
  5. Vue写的一个网站项目
  6. herom2 mysql_Hero引擎 竞标员NPC
  7. android5.0百度地图,百度地图安卓版5.0.0 官方版
  8. Oracle 11g RAC 安装数据库软件找不到节点的解决
  9. Teamviewer远程连接(Win和Linux下teamviewer软件互连)
  10. golang map转json的顺序问题