Pagini recente » Cod sursa (job #3133240) | Cod sursa (job #2941798) | Cod sursa (job #1147654) | Cod sursa (job #36337) | Cod sursa (job #813435)
Cod sursa(job #813435)
#include <cstdio>
#include <cstring>
#include <cctype>
using namespace std;
char t[2],s[100001],polon[100001][10],oper[100001];
int i,n,y,x;
int main()
{
freopen("eval.in","r",stdin);
freopen("eval.out","w",stdout);
gets(s+1);
n=strlen(s+1);
for (i=1;i<=n;i++)
if (isdigit(s[i]))
{
if (isdigit(s[i-1])) {t[0]=s[i];strcpy(polon[x],t);} else x++;
}
else
{
if (s[i]=='(') oper[++y]='(';
else if (s[i]=='*') oper[++y]='*';
else if (s[i]=='/') oper[++y]='/';
else if (s[i]=='+'|| s[i]=='-')
{
while (oper[y]=='*'||oper[y]=='/')
polon[++x][0]=oper[y--];
oper[++y]=s[i];
}
else if (s[i]==')')
{
while (oper[y]!='(')
polon[++x][0]=oper[y--];
y--;
}
}
for (i=1;i<=x;i++)
printf("%s",polon[i]);
return 0;
}