HDU 1237

来源:互联网 发布:广州多益网络员工收入 编辑:程序博客网 时间:2024/05/21 16:05

这也是一道模拟题,有很多人推荐用两个栈来做,而我目前对栈还是不太了解,就参考了别人的其它代码!

#include <iostream>
#include <cstdio>
#include <cstring>
using namespace std;
int main()
{
    double num[205];//这是存储每一个运算符后所得的结果
    int i;
    double s;//这是存储数字
    char f;//这是存储字符
    double sum;//这是存储最后所得到的答案
    while(cin>>s)
    {
        memset(num,'\0',sizeof(num));
        num[0]=s;
        i=0;
        f=getchar();
        if(f=='\n'&&s==0)break;
        while(1)
        {
            cin>>f>>s;
            if(f=='*')num[i]*=s;
            else if(f=='/')num[i]/=s;
            else if(f=='+')num[++i]=s;
            else
            {
                num[++i]=-s;
            }
            if(getchar()=='\n')break;
        }
        sum=0;
        for(i;i>=0;i--)
            sum+=num[i];
        printf("%.2lf\n",sum);
    }
    return 0;
}

原创粉丝点击