Cod sursa(job #1824156)
Utilizator | Data | 7 decembrie 2016 14:15:50 | |
---|---|---|---|
Problema | A+B | Scor | 0 |
Compilator | cpp | Status | done |
Runda | Arhiva de probleme | Marime | 1.68 kb |
#include <fstream>
using namespace std;
ifstream f("evaluare.in");
ofstream g("evaluare.out");
int
int main()
{
f.getline(c+1,100010);
c[0]='(';
n=strlen(c+1);
c[n+1]=')';
for(i=1;i<=n;++i)
{
if(c[i]==')')
{
if(st[vf]=='+')
{
vf--;
}
}
else
{
if(c[i]=='+')
{
if(st1[vf]=='*' || st1[vf]=='/')
{
x=st2[vff-1];
y=st2[vff];
vff-=2;
if(st1[vf]=='*')
st2[++vff]=x*y;
else
st2[++vff]=x/y;
vf--;
}
st1[++vf]='+';
}
if(c[i]=='-')
{
if(st1[vf]=='*' || st1[vf]=='/')
{
x=st2[vff-1];
y=st2[vff];
vff-=2;
if(st1[vf]=='*')
st2[++vff]=x*y;
else
st2[++vff]=x/y;
vf--;
}
st1[++vf1]='-';
}
if(c[i]=='*')
st1[++vf1]='*';
if(c[i]=='/')
st1[++vf1]='/';
if(c[i]-'0'>=0 && c[i]-'0'<10)
{
nr=0;
while(c[i]-'0'>=0 && c[i]-'0'<10)
{
nr=nr*10+c[i]-'0';
++i;
}
st2[++vff]=nr;
}
}
}
return 0;
}