用C语言编写一个简单的可以进行加减乘除运算混合运算的计算器要求:1.可以进行 + - * / 四则运
答案:2 悬赏:10 手机版
解决时间 2021-02-21 02:37
- 提问者网友:轻浮
- 2021-02-20 12:44
用C语言编写一个简单的可以进行加减乘除运算混合运算的计算器要求:1.可以进行 + - * / 四则运
最佳答案
- 五星知识达人网友:詩光轨車
- 2021-02-20 14:15
#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} }这个是比较简单的.但是有点难理解.不过运行绝对正确.还支持括号.但是在这个程序里面我加没有出错处理.另一种方法是用栈写.这个好理解.但是麻烦.
全部回答
- 1楼网友:duile
- 2021-02-20 15:06
我检查一下我的答案
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯