网站导航免费论文 原创论文 论文搜索 原创论文 网学软件 学术大家 资料中心 会员中心 问题解答 原创论文 论文素材 设计下载 最新论文 下载排行 论文上传 在线投稿 联系我们
返回网学首页
网学联系
最新论文 推荐专题 热门论文 素材专题
当前位置: 网学 > 编程文档 > C/C++ > 正文
C++利用堆栈编写的一位整数中缀表达式计算器
来源:Http://myeducs.cn 联系QQ:点击这里给我发消息 作者: 用户投稿 来源: 网络 发布时间: 12/10/15
下载{$ArticleTitle}原创论文样式
ize == 0){
            printf("%s[0]=\n", name);
            return;
        }
        printf("%s[%d]=", name, size);
        printf("(");
        printf("{%c,%.4f}", tokens[0].type, tokens[0].value);
        for(int i=1; i<size; i++){
            printf(", {%c,%.4f}", tokens[i].type, tokens[i].value);
        }
        printf(")\n");
    }
};

/*
 * 归约函数, 从操作数栈和操作符栈各弹出一个元素,
 * 与操作数栈顶的元素(并未弹出)运算后, 结果存在操作栈顶的元素中.
 */
void calculate(ArrayStack &operandStack, ArrayStack &operatorStack){
    if(operandStack.getSize() < 2){
        return;
    }
    Token *t1 = operandStack.pop();
    Token *t2 = operandStack.peek();
    Token *op = operatorStack.pop();
    switch(op->type){
        case ''*'':
            t2->value *= t1->value;
            break;
        case ''/'':
            t2->value /= t1->value;
            break;
        case ''+'':
            t2->value += t1->value;
            break;
        case ''-'':
            t2->value -= t1->value;
            break;
        default:
            printf("*********Syntax Error!*********\n");
            exit(1);
            break;
    }
}


int main(int argc, char *argv){
    char buffer[256];
    if(argc > 1){
        strcpy(buffer, argv);
    }else{
        printf("Input the statement(1-256 characters):\n");
        scanf("%s", buffer);
    }

    ArrayStack operan

  • 下一篇资讯: C/C++时间函数介绍
  • 网学推荐

    免费论文

    原创论文

    浏览:
    设为首页 | 加入收藏 | 论文首页 | 论文专题 | 设计下载 | 网学软件 | 论文模板 | 论文资源 | 程序设计 | 关于网学 | 站内搜索 | 网学留言 | 友情链接 | 资料中心
    版权所有 QQ:3710167 邮箱:3710167@qq.com 网学网 [Myeducs.cn] 您电脑的分辨率是 像素
    Copyright 2008-2015 myeducs.Cn www.myeducs.Cn All Rights Reserved
    湘ICP备09003080号