Pagini recente » Cod sursa (job #2754941) | Cod sursa (job #2076740) | Cod sursa (job #1761211) | Cod sursa (job #1124314) | Cod sursa (job #1824712)
#include <fstream>
#include <cstring>
using namespace std;
ifstream fin ("evaluare.in");
ofstream fout("evaluare.out");
char c[100010],a[100010],k;
int b[100010],vl[260];
int x,y,i,n,d;
bool nr()
{
if (k>='0' && k<='9') return 1;
return 0;
}
bool op()
{
if (k=='+' ||
k=='-' ||
k=='*' ||
k=='/' ||
k=='(' )
return 1;
return 0;
}
int main()
{ // vl['(']=0;
vl['+']=vl['-']=1;
vl['*']=vl['/']=2;
fin.getline (c,100010);
n=strlen(c+1);
for (i=1;i<=n;++i)
{
k=c[i];
if (nr())
{
d=k-'0';
++i;
while (nr())
{
d*=10;
d+=(k-'0');
}
b[++y]=d;
}
else
if (op())
{
if (vl[c[i]] < vl[c[i-1]])
{
tr(); //--xy
}
else
{
a[++u]=c[i];
}
}
else
{
while (a[y]!='(')
{
tr();
}
}
}
}
return 0;
}