#include<stdio.h> typedef struct { int coef; //系数 char alp; //字母 int expn; //指数 }term; void qianyi(term a[], int j, int n) { int i; for (i = j; i < n-1; i++) a[i] = a[i + 1]; } int main() { term a[100]; int t,i,j,m,n; char c; m = 1; while (m) { scanf("%d",&t); if (t == 0) break; printf("Case #%d:\n", m++); while(t--) { n = 0; while (1) //输入多项式 { scanf("%d %c %d", &a[n].coef, &a[n].alp, &a[n].expn); n++; c = getchar(); if (c == '\n') break; } for (i = 0; i < n; i++) { for (j = i + 1; j < n; j++) //进行合并 if (a[i].alp == a[j].alp) { a[i].coef += a[j].coef; qianyi(a, j, n); n--; i--; break; } } for (i = 0; i < n; i++) //求导 { if (a[i].expn != 0) { a[i].coef *= a[i].expn; a[i].expn--; } } for (i = 0; i < n; i++) { if (i != n - 1) { if (a[i].expn == 0) printf("%d", a[i].coef); else printf("%d * %c ^ %d", a[i].coef, a[i].alp, a[i].expn); printf(" + "); } else { if (a[i].expn == 0) printf("%d", a[i].coef); else printf("%d * %c ^ %d", a[i].coef, a[i].alp, a[i].expn); } } printf("\n"); } } return 0; } |
Double click to view unformatted code.