View Code of Problem 11

#include<stdio.h>
#include<string.h> 
int main(){
	char w[30];
	int a[20],c[20];   //定义三个数组分别存储系数、次数
	int t;
	int k=0; 
	while(scanf("%d",&t)&&t!=0) {
		getchar();	
	    k++;
	    printf("Case #%d:\n",k);
		while(t--){
		gets(w);
		a[0]=c[0]=0;
		a[1]=c[1]=0;
		a[2]=c[2]=0;
		for(int i=0;i<strlen(w)-1;i++){     //储存对应XYZ的系数次数 
			if(w[i]=='X'){
				w[i-2]=w[i-2]-'0';
				w[i+2]=w[i+2]-'0';
			    a[0]=a[0]+w[i-2];
				c[0]=w[i+2];	
			}
			if(w[i]=='Y'){
				w[i-2]=w[i-2]-'0';
				w[i+2]=w[i+2]-'0';
				a[1]=a[1]+w[i-2];
				c[1]=w[i+2];	
			}
			if(w[i]=='Z'){
				w[i-2]=w[i-2]-'0';
				w[i+2]=w[i+2]-'0';
				a[2]=a[2]+w[i-2];
				c[2]=w[i+2];	
			}
		} 	
		 for(int i=0;i<3;i++){
		 	if(c[i]==0&&a[i]!=0){
				printf("%d",a[i]);
			}
			else if(a[i]==0)
			continue;
			else{
				 if(i==0)
				 	printf("%d * X ^ %d",a[i]*c[i],c[i]-1);
				 else if(i==1)
				 	 printf("%d * Y ^ %d",a[i]*c[i],c[i]-1);
				 else
				 printf("%d * Z ^ %d",a[i]*c[i],c[i]-1);	
			}
			
			
			if(i==0){
					if(a[i+1]!=0||a[i+2]!=0)
					printf(" + "); 
			}
			else if(i==1){
				if(a[i+1]!=0) 
				printf(" + "); 
			}
			}	
			 printf("\n");
		 }      
	  }
	}

Double click to view unformatted code.


Back to problem 11