| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 449 人关注过本帖
标题:这个逆波兰表达式求值的函数,后缀求值错哪里了?帮忙看下谢了
只看楼主 加入收藏
NeQhk
Rank: 2
等 级:论坛游民
威 望:1
帖 子:164
专家分:85
注 册:2014-7-19
结帖率:69.23%
收藏
 问题点数:0 回复次数:0 
这个逆波兰表达式求值的函数,后缀求值错哪里了?帮忙看下谢了
void houzhuiqiuzhi(char a[])
{
    int i=0;
    stack s;
    creat(&s);
    char str[10];
    double d,e;
    while(a[i]!='\0')
    {
        int j=0;
        while(a[i]>='0'&&a[i]<='9')
        {
            str[j++]=a[i]; --------//str缓冲器,对那种两位数的也能存进栈里面,而不是分开存
                                    比如15存15 而不是1 和5
            str[j]='\0';
            i++;
            if(a[i]<='0'||a[i]>='9')
            {
                 d=atof(str);
                 push(&s,d);
                 j=0;
                 break;
            }
        }
        switch(a[i])
        {
           case '+':
              pop(&s,&e);
              pop(&s,&d);
              push(&s,d+e);
              break;
          case '-':
              pop(&s,&e);
              pop(&s,&d);
              push(&s,d-e);
              break;
          case '*':
              pop(&s,&e);
              pop(&s,&d);
              push(&s,d*e);
              break;
          case '/':
              pop(&s,&e);
              pop(&s,&d);
              if(e!=0)
              {
                  push(&s,d/e);
              }
              else
              {
                  exit(0);
              }
             break;
        }
        i++;
    }
    pop(&s,&d);
    printf("%d",d);
}

[ 本帖最后由 NeQhk 于 2015-5-2 18:39 编辑 ]
搜索更多相关主题的帖子: 缓冲器 表达式 double 
2015-05-02 18:37
快速回复:这个逆波兰表达式求值的函数,后缀求值错哪里了?帮忙看下谢了
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.023645 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved