码迷,mamicode.com
首页 > 其他好文 > 详细

练习3.19 计算后缀表达式的值

时间:2015-07-14 11:15:36      阅读:129      评论:0      收藏:0      [点我收藏+]

标签:

技术分享
int main()
{
    int MaxSize = 100,i,j;
    char tmp[10];
    PtrToStack s;
    s = CreateStack(MaxSize);
    while( scanf("%s",tmp) != EOF )
    {
        int len,num=0,val1,val2;
        len = strlen(tmp);
        if( tmp[0] == \n)
            break;
        if( len == 1 && tmp[0] >=48 && tmp[0] <= 57 )
            Push( tmp[0] - 0, s );
        else if( len > 1 )
        {
            for( i = 0,j = len - 1; i < len; i++,j--)
            {
                num += tmp[i] * pow(10,j);
            }
            Push( num, s);
        }
        else
        {
            val1 = Top(s);
            Pop(s);
            val2 = Top(s);
            Pop(s);
            switch ( tmp[0] )
            {
            case +:
                Push( val1 + val2, s );
                break;
            case -:
                Push( val1 - val2, s );
                break;
            case *:
                Push( val1 * val2, s );
                break;
            case /:
                Push( val1 / val2, s );
                break;
            }
        }//else
    }//while
    printf("%d", Top(s) );
}
View Code

while(scanf )有问题,其他地方都没问题

待优化

练习3.19 计算后缀表达式的值

标签:

原文地址:http://www.cnblogs.com/gabygoole/p/4644911.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!