C语言的问题求大神帮忙,用C语言编写一个四则运算程序,输出计算结果。

 我来答
匿名用户
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;
}

出自大名鼎鼎的编译原理作者之手。

追问
太复杂了,其实我想要的就是输入两个数,在输入加减乘除任意一个符号出相应的结果。
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式