程序只验证了样例。
1 #include<stdio.h> 2 3 int main(void) 4 { 5 int a[101] = { 0 }; 6 int b[101] = { 0 }; 7 8 int m, n; 9 10 for (int i = 0; i < 2; i++) 11 { 12 do 13 { 14 scanf_s("%d %d", &m, &n); 15 16 if (a[m] == 0) 17 { 18 a[m] = 1; 19 b[m] = n; 20 } 21 else 22 { 23 b[m] = b[m] + n; 24 } 25 26 if (m == 0) 27 { 28 break; 29 } 30 31 } while (1); 32 } 33 34 int count = 0; 35 for (int i = 100; i >= 0; i--) 36 { 37 if (a[i] == 1) 38 { 39 count++; 40 if (count == 1) 41 { 42 printf("%dx%d", b[i], i); 43 } 44 else 45 { 46 /*考虑系数为负数的情况*/ 47 if (b[i] < 0) 48 { 49 b[i] = -b[i]; 50 printf("-"); 51 } 52 else 53 { 54 printf("+"); 55 } 56 57 if (i == 1) 58 { 59 printf("%dx", b[i]); 60 } 61 else if (i == 0) 62 { 63 printf("%d", b[i]); 64 } 65 else 66 { 67 printf("%dx%d", b[i], i); 68 } 69 } 70 } 71 } 72 return 0; 73 }