Cod sursa(job #159531)

Utilizator KingRaBuhas Bogdan KingRa Data 14 martie 2008 10:59:25
Problema Evaluarea unei expresii Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 1.44 kb
// evaluare.cpp : Defines the entry point for the console application.
//

#include "stdafx.h"
#include <stdio.h>  
FILE *fin=fopen("evaluare.in","r"),
	 *fout=fopen("evaluare.out","w");
char x[100010],*s=x;  
long eval2();  
long nr();  
long eval()  
     {  
      long a=eval2();  
      while (*s=='+'||*s=='-')  
      {  
      if (*s=='+')  
               {  
               s++;  
               a+=eval2();  
               }  
           else    {  
               s++;  
               a-=eval2();  
               }  
           }  
       return a;  
       }  
     
   long eval2()  
       {  
       long a=nr();  
       while (*s=='*'||*s=='/')  
           {  
           if (*s=='*')  
               {  
               s++;  
               a*=nr();  
               }  
           else    {  
               s++;  
               a/=nr();  
               }  
           }  
       return a;  
       }  
     
   long nr()  
       {  
       long a=0;  
       if (*s=='(')  
           {  
           s++;  
           a=eval();  
           s++;  
           }  
       else  
           while (*s>='0'&&*s<='9')  
               {  
               a=a*10+*s-'0';  
               s++;  
               }  
       return a;  
       }    
   int main()  
   {  
   fscanf(fin,"%s",&x);  
   fprintf(fout,"%ld\n",eval());  
   fclose(fin);
   fclose(fout);
   return 0;  
   }