永发信息网

用C语言编写一个简单的可以进行加减乘除运算混合运算的计算器要求:1.可以进行 + - * / 四则运

答案:2  悬赏:10  手机版
解决时间 2021-02-21 02:37
用C语言编写一个简单的可以进行加减乘除运算混合运算的计算器要求:1.可以进行 + - * / 四则运
最佳答案
#include stdio.h#include stdlib.h#include ctype.hint n=0;char record[20];float product();float change();float muli(){\x09float summ;\x09summ=product();\x09while(record[n]=='-'||record[n]=='+')\x09{\x09\x09switch(record[n])\x09\x09{\x09\x09\x09case '+':n++;summ+=product();break;\x09\x09\x09case '-':n++;summ-=product();break;\x09\x09}\x09}\x09return summ;}float product(){\x09float sump;\x09sump=change();\x09while(record[n]=='*'||record[n]=='/')\x09{\x09\x09switch(record[n])\x09\x09{\x09\x09\x09case '*':n++;sump*=change();break;\x09\x09\x09case '/':n++;sump/=change();break;\x09\x09}\x09}\x09return sump;}float change(){\x09float sumc;\x09char rec[20],i=0;\x09if(record[n]=='(')\x09{\x09\x09n++;\x09\x09sumc=muli();\x09}\x09if(record[n]==')')\x09 n++;\x09 while(isdigit(record[n])||record[n]=='.')\x09 {\x09 \x09while(isdigit(record[n])||record[n]=='.')\x09 \x09\x09rec[i++]=record[n++];\x09 \x09\x09rec[i]='\0';\x09 \x09\x09sumc=atof(rec);\x09 }\x09 return sumc;\x09}void main(){\x09while(1)\x09{\x09n=0;\x09scanf(%s,record);\x09printf(%s=%g\n,record,muli());\x09} }这个是比较简单的.但是有点难理解.不过运行绝对正确.还支持括号.但是在这个程序里面我加没有出错处理.另一种方法是用栈写.这个好理解.但是麻烦.
全部回答
我检查一下我的答案
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
我的车子是1999年的,现在验车标志是黄标,现
小花生叫什么名字
劫 技能怎么打出最大伤害 还有什么技巧,初玩
好想呕的时候,喝糖和盐的水能不能止呕?
我是通过八口的交换机拨号上网的,现在我买了
说说图片透明人
达依乌勒干这个地址在什么地方,我要处理点事
【电传】电传、传真、电报的区别
被人无意打伤一只眼睛5级损伤应该赔偿多少钱
澜沁斋裱画配框在什么地方啊,我要过去处理事
怎么知道自己追的女生是真心喜欢自己呢?只要
抓衣领摔法,抓衣领摔法成立么 就是街机里三
沃尔玛购物广场长虹路分店怎么去啊,有知道地
两岁多宝宝老是用舌头舔嘴唇,嘴唇都红了怎么
一题反比例函数应用题某商场用5万元从外地购
推荐资讯
创辉图文地址在什么地方,想过去办事
iPhone6s第一次充电要冲多久
有什么简单适合女生还能在淘宝买到的手工制作
Finder Pattern是什么意思
【技术英语】如何用英语表达“技术”这个单词
东莞怎样去香港?
tcl手机4G安上4G卡为什么开不了4G网
母亲改嫁后还有权拿回前夫的遗产不
春秋时期,赵鞅说“克敌者,上大夫受县,下大
男人怎么样才能出人头地,拥有一份属于自己的
太岁现在多少钱一斤
梦里被狗咬,意味着什么?
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?