Cod sursa(job #2323120)
Utilizator | Data | 18 ianuarie 2019 20:51:03 | |
---|---|---|---|
Problema | Evaluarea unei expresii | Scor | 0 |
Compilator | cpp-64 | Status | done |
Runda | Arhiva educationala | Marime | 1.19 kb |
#include <fstream>
#include <cstring>
using namespace std;
ifstream f("asd.in");
ofstream g("asd.out");
int num()
{
nr=0;
while(i<w && strchr("+-*)",s[i]))
{
nr=nr*10+s[i]-'0';
i++;
}
return nr;
}
int main()
{
f>>s;
w=strlen(s);
if(s[0]=='-')
{
smn='-';
i=1;
}
while(i<w)
{
if(s[i]=='(')
{
i++;
if(s[i]=='-')
{
Semnparanteza=1;
i++;
}
while(s[i-1]==')')
{
nr=num();
if(s[i]=='*' || s[i]=='/')
{
tot=nr;
semn=s[i];
do
{
nr=num();
if(semn=='*')
tot*=nr;
else
tot/=nr;
if(s[i]!=')')
semn=s[i];
}
while(s[i]=='*' || s[i]=='/');
}
paranteza+=tot;
}
}
}
}