View Code of Problem 11

#include<stdio.h>
#include<string.h>
#include<stdlib.h>
#include<math.h>
struct fas
{
	int q;
	char change;
	int h;
};
void qianyi(struct fas a[], int j, int n){
	int i;
	for (i = j; i < n-1; i++)
		a[i] = a[i + 1];
}
int main()
{
	struct fas a[100];
	int t,i,j,k,n,m=1;
	char c;
	while (m)
	{
		scanf("%d", &t);
		if (t == 0)
			break;
		printf("Case #%d:\n", m++);
		for (k = 0; k < t; k++)
		{
			n = 0;
			while (1)
			{
				scanf("%d %c %d", &a[n].q, &a[n].change, &a[n].h);
				n++;
				c = getchar();
				if (c == '\n')break;
			}
			for (i = 0; i < n; i++)
			{
				for (j = i + 1; j < n; j++)
					if (a[i].change == a[j].change)
					{
					a[i].q += a[j].q;
					qianyi(a, j, n);
					n--; i--;
					break;
					}
			}
			for (i = 0; i < n; i++)
			{
				if (a[i].h != 0){
					a[i].q *= a[i].h;
					a[i].h--;
				}
			}
			for (i = 0; i < n; i++){
				if (i != n - 1){
					if (a[i].h == 0)printf("%d", a[i].q);
					else printf("%d * %c ^ %d", a[i].q, a[i].change, a[i].h);
					printf(" + ");
				}
				else{
					if (a[i].h == 0)printf("%d", a[i].q);
					else printf("%d * %c ^ %d", a[i].q, a[i].change, a[i].h);
				}
			}
			printf("\n");
		}
	}
}

Double click to view unformatted code.


Back to problem 11