C语言的问题求大神帮忙,用C语言编写一个四则运算程序,输出计算结果。
1个回答
2014-07-06
展开全部
#include "stdio.h"
#include "stdlib.h"
char token;
int exp();
int term();
int factor();
void error()
{
fprintf(stderr,"Error\n");
exit(1);
}
//
void match(char expecttoken)
{
if ( token == expecttoken)
{
token = getchar();
}
else
{
error();
}
}
int main()
{
int result;
token = getchar();
result = exp();
if ( token == '\n')
{
printf("result=%d",result);
return 0;
}
else error();
return 0;
}
int exp()
{
int temp = term();
while((token=='+'||token=='-'))
switch(token)
{
case '+':
match('+');
temp+=term();
break;
case '-':
match('-');
temp -=term();
break;
}
return temp;
}
int term()
{
int temp = factor();
while(token == '*')
{
match('*');
temp*=factor();
}
return temp;
}
int factor()
{
int temp;
if (token == '(')
{
match('(');
temp = exp();
match(')');
}
else if( isdigit(token))
{
ungetc(token,stdin);
scanf("%d",&temp);
token = getchar();
}
else error();
return temp;
}
出自大名鼎鼎的编译原理作者之手。
追问
太复杂了,其实我想要的就是输入两个数,在输入加减乘除任意一个符号出相应的结果。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询