跪求C语言高手帮忙用C编个计算器!!!急!!

来源:百度知道 编辑:UC知道 时间:2024/06/17 10:32:12
简洁易懂``能进行简单的计算就行,不一定要有按键,但一定要将中缀表达式转换成后缀表达式!
谢谢啦``
分全部拿出来了!

支持整数 + - * / () 混合运算 。
如:5*(6+814)

#include <stdio.h>
#include <stdlib.h>
#include <ctype.h>

int addsubt();
int multdiv();
int number();
void error();

static char expr[81];
static int pos;

int main()
{
int ans;

do
{
pos=0;
printf("enter expression (0 to quit):\n");
gets(expr);

ans=addsubt();
if(expr[pos]!='\0')
error();
if(ans!=0)
printf("%ld\n",ans);
}
while(ans!=0);

return 0;
}

int addsubt() //加减运算函数 ,加减优先级比乘除低,所以这里加数,都是调用 乘除 函数来获得的,这样可以先执行乘除,。
{
int rtn=multdiv();
while(expr[pos]=='+'||expr[pos]=='-') //判断是不是 + -号
{
int op=expr[pos++];
int opr2=multdiv(); //加数2是调用乘函数得来。
if(op=='+') //+
rtn+=opr2; //求和
else rtn-=opr2;
}
retur