View Code of Problem 11

#include<stdio.h>
#include<string.h>

int main()
{
	int t, count = 1;
	char s[2005];
	scanf("%d", &t);
	while(t != 0)
	{
		int first = 1;
		getchar();
		while(t--)
		{
			int a = 0, b = 0, c = 0, n1 = 0, n2 = 0, n3 = 0;
			int flag = 1;
			gets(s);
			int len = strlen(s);
			for(int i = 2; i+3<= len; i += 6)
				switch(s[i])
				{
					case 'X':a += s[i-2] - 48;
							n1 = s[i+2] - 48;
							break;
					
					case 'Y':b += s[i-2] - 48;
							n2 = s[i+2] - 48;
							break;
					
					case 'Z':c += s[i-2] - 48;
							n3 = s[i+2] - 48;
							break;
				}
			
			
			
			if(first)
			{
				first = 0;
				printf("Case #%d:\n", count++);
			}
			
			if(n1 != 0 && a != 0)
			{
				a *= n1;
				n1--;
				printf("%d * X ^ %d", a, n1);
			}	
			else if(a == 0)
				flag = 0;
			else
			{
				printf("%d", a);
			}
		
			if(n2 != 0 && b != 0)
			{
				if(flag)
					printf(" + ");
				flag = 1;
				b *= n2;
				n2--;
				printf("%d * Y ^ %d", b, n2);
			}
			else if(n2 == 0 && b != 0)
			{
				if(flag)
					printf(" + ");
				flag = 1;
				printf("%d", b);
			}
		    
			if(n3 != 0 && c != 0)
			{
				if(flag)
					printf(" + ");
				c *= n3;
				n3--;
				printf("%d * Z ^ %d\n", c, n3);
			}	
			else if(c == 0)
				printf("\n");
			else
			{
				if(flag)
					printf(" + ");
				printf("%d\n", c);
			}
			
		}
		
		scanf("%d", &t);
	}
}

Double click to view unformatted code.


Back to problem 11