View Code of Problem 94

#include<stdio.h>
	int main()
	{
		char s[1000],a[1000];
		int b[1000];
		int i,j,k,top1=-1,top2=-1;
		gets(s);
		for(i=0;s[i]!='\0';i++)
		{
			if(s[i]=='(')
			{
				b[++top2]=-99999;
			}
			if(s[i]=='+'||s[i]=='-'||s[i]=='*'||s[i]=='/')
			{
				a[++top1]=s[i];
			}
			if(s[i]>='0'&&s[i]<='9')
			{
				b[++top2]=s[i]-'0';
			}
			if(s[i]==')')
			{
				int sum=0;
				if(a[top1]=='+')
				{
					while(b[top2]!=-99999)
					{
						sum+=b[top2--]; 
					}
					b[top2]=sum;
				}
				else if(a[top1]=='*')
				{
					sum=1;
					while(b[top2]!=-99999)
					{
						sum*=b[top2--];
					}
					b[top2]=sum;
				}
				else if(a[top1]=='/')
				{
					sum=1;
					while(b[top2-1]!=-99999)
					{
						sum*=b[top2--];
					}
					sum=b[top2--]/sum;
					b[top2]=sum;
				}
				else if(a[top1]=='-')
				{
					while(b[top2-1]!=-99999)
					{
						sum+=b[top2--];
					}
					sum=b[top2--]-sum;
					b[top2]=sum;
				}
				top1--;
			} 
		}
		printf("%d\n",b[0]);
	}

Double click to view unformatted code.


Back to problem 94