View Code of Problem 11

#include<stdio.h>
#include<string.h>
#include<stdlib.h>
#include<math.h>
#include<stdbool.h>
typedef struct{
	char name[20];
	int flag;
}Children;

int main(){
	int a[3];
	int b[3];
	int n;
	char s[1000];
	int k=0;
	while(scanf("%d",&n)!=EOF&&n!=0){
		getchar();
		printf("Case #%d:\n",++k);
		while(n--){
			
			gets(s);
			for(int i=0;i<3;i++){
				a[i]=0;
				b[i]=0;
			}
			int len=strlen(s);
			//printf("--%s--\n",s);
			for(int i=0;i<len;i++){
				if(s[i]=='X'){
					a[0]+=s[i-2]-'0';
					b[0]=s[i+2]-'0';
				}
				if(s[i]=='Y'){
					a[1]+=s[i-2]-'0';
					b[1]=s[i+2]-'0';
				}
			if(s[i]=='Z'){
				a[2]+=s[i-2]-'0';
				b[2]=s[i+2]-'0';
			}
		}
		//printf("%d %d %d\n",a[0],a[1],a[2]);
		for(int i=0;i<3;i++){
			if(b[i]>0){
				a[i]=a[i]*b[i];
				b[i]--;
			}
				
		}
		if(a[0]>0){
			printf("%d",a[0]);
			if(b[0]>0){
				 printf(" * X ^ %d",b[0]);
			}
			if(a[1]>0){
				printf(" + ");
				printf("%d",a[1],b[1]);
				if(b[1]>0){
					printf(" * Y ^ %d",b[1]);
				}
			}
			
			if(a[2]>0){
				printf(" + ");
				printf("%d",a[2],b[2]);
				if(b[2]>0){
					printf(" * Z ^ %d\n",b[2]);
				}else{
					printf("\n");
				}
			}else{
				printf("\n");
			} 
		}
		else if(a[1]>0){
			printf("%d",a[1]);
			if(b[1]>0){
				printf(" * Y ^ %d",b[1]);
			}
			if(a[2]>0){
				printf(" + ");
				printf("%d",a[2]);
				if(b[2]>0){
					printf(" * Z ^ %d\n",b[2]);
				}else{
					printf("\n");
				}
			}else{
				printf("\n");
			} 
		}
		else if(a[2]>0){
				printf("%d",a[2]);
				if(b[2]>0){
					printf(" * Z ^ %d\n",b[2]);
				}else{
					printf("\n");
				}
		} 
		
		}
		 
		
	}
} 




	

Double click to view unformatted code.


Back to problem 11