#include<stdio.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.