#include #include #include #define and && #define or || typedef struct { char prev; int e, n; } zavorka; void bagr() { zavorka zav[250]; char s[507]; int stack[250]; int sc, ak=0, in, i; zavorka pom; fgets(s, 500, stdin); s[strlen(s)-1] = 0; for (i=0; i0) zav[ak].prev = s[i-1]; else zav[ak].prev = ' '; stack[sc++] = ak; break; case '+': case '-': zav[stack[sc-1]].e = 1;break; case ')': sc --;pom = zav[stack[sc]];/*printf("%d %c;", pom.e, pom.prev);*/ if (pom.e == 1 and (pom.prev == '-' or pom.prev == '/' or pom.prev == '*' or s[i+1] == '*' or s[i+1] == '/')) pom.n=1; else { if (pom.prev == '/') pom.n = 1; else pom.n = 0; } zav[stack[sc]]=pom; /* printf("%d, %c, %d;;", stack[sc], s[i+1], pom.n);*/ break; } } sc=0;ak=0; for (i=0; i