View Code of Problem 94

# include <stdio.h>
# include <string.h>
  void f(char b[1000])
  {
	  int i=0,j,n,t=0,s,f,a[10000],m,l,num;
	  char d,c[10000];
	  while(1)
	  {
		  if(b[i]==')')
		  {
			  for(j=i-1,t=0;b[j]!='(';j--)
				  c[t++]=b[j];
			  i=j;
			  d=b[j+1];
			  for(j=t-2,t=0,f=0;j>=0;j--)
			  {
				  if(c[j]==' ')
				  {
					  if(f==1)
					  {
						  if(l==1)
						  a[t++]=-s;
						  else
							  a[t++]=s;
					  }
					  f=1;
					  s=0;
					  l=0;
				  }
				  else
				  {
					  if(c[j]=='-')
						  l=1;
					  else
					  s=s*10+c[j]-'0';
				  }
			  }
			              if(l==1)
						  a[t++]=-s;
						  else
							  a[t++]=s;
			  for(i=1,s=a[0];i<t;i++)
				  if(d=='+')
					  s=s+a[i];
				  else if(d=='-')
					  s=s-a[i];
				  else if(d=='*')
					  s=s*a[i];
				  else if(d=='/')
					  s=s/a[i];
				  if (s>0)
				  {
					  t=0;m=0;num=0;
				  while(s>0)
				  {
					  if(s%10==0)
						  num++;
					  m=m*10+s%10;
					  s=s/10;
				  }		  
				  while(m>0)
				  {
					  b[t++]=m%10+'0';
					  m=m/10;
				  }
				  while(num--)
					  b[t++]='0';
				  b[t]='\0';
				  break;
				  }
				  else if(s==0)
				  {
					  b[0]='0';
				  b[1]='\0';
				  break;
				  }
				  else
				  {
					  s=-s;
					  t=1;m=0;num=0;
				  while(s>0)
				  {
					  if(s%10==0)
						  num++;
					  m=m*10+s%10;
					  s=s/10;
				  }
				  b[0]='-';
				  while(m>0)
				  {
					  b[t++]=m%10+'0';
					  m=m/10;
				  }
				  while(num--)
					  b[t++]='0';
				  b[t]='\0';
				  break;
				  }
		  }
		  else
			  i++;
	  }
  }
  main()
  {
	  int i,j,x,n,t;
	  char a[1000],b[1000];
	  gets(a);
	  while(1)
	  {
	  n=strlen(a);
	  for(j=0;j<n;j++)
		  if(a[j]==')')
			  break;
		  if(j==n)
			  break;
		  for(i=j;;i--)
			  if(a[i]=='(')
				  break;
			  for(t=0,x=i;x<=j;x++)
				  b[t++]=a[x];
			  b[t]='\0';
			  f(b);
			  for(x=0;b[x]!='\0';x++)
				  a[i++]=b[x];
			  for(x=j+1;a[x]!='\0';x++)
				  a[i++]=a[x];
			  a[i]='\0';
	  }
	  puts(a);
  }

Double click to view unformatted code.


Back to problem 94