Cod sursa(job #3132938)
Utilizator | Data | 24 mai 2023 15:09:56 | |
---|---|---|---|
Problema | Evaluarea unei expresii | Scor | 0 |
Compilator | cpp-64 | Status | done |
Runda | Arhiva educationala | Marime | 0.51 kb |
#include<bits/stdc++.h>
using namespace std;
ifstream F("evaluare.in");
ofstream G("evaluare.out");
char *c;
int A(int x)
{
int r;
char o;
if(!x)
for(r=A(1),o=*c;o=='+'||o=='-';++c,r=o=='+'?r+A(1):r-A(1),o=*c);
else if(x==1)
for(r=A(2),o=*c;o=='*'||o=='/';++c,r=o=='*'?r*A(2):r/A(2),o=*c);
else if(*c=='(')
++c,r=A(0),++c;
else
for(r=0;isdigit(*c);r=10*r+*c-'0',++c);
return r;
}
int main()
{
return c=new char[100001],F>>c,G<<A(0),0;
}