Pagini recente » Cod sursa (job #2627833) | Cod sursa (job #2291270) | Cod sursa (job #2404020) | Cod sursa (job #2468238) | Cod sursa (job #524441)
Cod sursa(job #524441)
#include <stdio.h>
#include <string.h>
const int max=100001;
char s[100001];
int i,n,sol;
int termen();
int factor();
int expresie() {
int x=termen();
while (s[i]=='+' || s[i]=='-') {
if (s[i]=='+') {
i++;
x+=termen();
}
else
if (s[i]=='-') {
i++;
x-=termen();
}
}
return x;
}
int termen() {
int x=factor();
while (s[i]=='*' || s[i]=='/') {
if (s[i]=='*') {
i++;
x*=factor();
}
else
if (s[i]=='/') {
i++;
x/=factor();
}
}
return x;
}
int factor() {
int x=0;
if (s[i]=='(') {
i++;
x=expresie();
i++;
}
else {
while (s[i]>='0' && s[i]<='9') {
x=x*10+s[i]-48;
i++;
}
}
return x;
}
int main () {
FILE *f=fopen("evaluare.in","r");
FILE *g=fopen("evaluare.out","w");
i=0;
fgets(s,max,f);
n=strlen(s);
sol=expresie();
fprintf(g,"%d\n",sol);
return 0;
}