1. #include <stdio.h>
    2. #include <stdlib.h>
    3. #define MAXSIZE 100
    4. void DisPlay(int a[MAXSIZE], int n, int first, int flag1, int flag2, int flag3, int flag4); // a[] 系数 , flag1 正负 , flag2 是否显示系数 , flag3 是否显示 X ,flag4 是否显示指数
    5. int main(void) {
    6. int n; // n 为最高项数
    7. int flag1, flag2, flag3, flag4;
    8. int a[MAXSIZE];
    9. while (scanf_s("%d", &n) != EOF)
    10. {
    11. fflush(stdin);
    12. int i;
    13. for (i = 0; i <= n; i++)
    14. {
    15. scanf_s("%d", &a[i],sizeof(a[i]));
    16. fflush(stdin);
    17. }
    18. int first;
    19. first = 1;
    20. for (i = 0; i <= n ; i++)
    21. {
    22. if (first) {
    23. flag4 = 1;
    24. flag3 = 1;
    25. flag2 = 1;
    26. flag1 = 1;
    27. if ((abs(a[i]) == 1) && (i != n))
    28. flag2 = 0;
    29. if (i == n)
    30. {
    31. flag3 = 0;
    32. flag4 = 0;
    33. }
    34. if (a[i] < 0) {
    35. flag1 = 2;
    36. }
    37. if (a[i] == 0) {
    38. flag4 = 0;
    39. flag3 = 0;
    40. flag2 = 0;
    41. flag1 = 0;
    42. }
    43. DisPlay(a[i], n - i, first, flag1, flag2, flag3, flag4);
    44. first = 0;
    45. }
    46. else {
    47. flag4 = 1;
    48. flag3 = 1;
    49. flag2 = 1;
    50. flag1 = 1;
    51. if ((abs(a[i]) == 1) && (i != n))
    52. flag2 = 0;
    53. if (i == n)
    54. {
    55. flag3 = 0;
    56. flag4 = 0;
    57. }
    58. if (a[i] < 0)
    59. flag1 = 2;
    60. if (a[i] == 0){
    61. flag4 = 0;
    62. flag3 = 0;
    63. flag2 = 0;
    64. flag1 = 0;
    65. }
    66. DisPlay(a[i], n - i, first, flag1, flag2, flag3, flag4);
    67. }
    68. }
    69. for (i = 0; i <= n; i++)
    70. {
    71. a[i] = 0;
    72. }
    73. }
    74. return 0;
    75. }
    76. void DisPlay(int coeff, int n, int first, int flag1, int flag2, int flag3, int flag4) {
    77. if (first) {
    78. if (flag1 == 2)
    79. printf("-");
    80. if (flag2 == 1)
    81. printf("%d", coeff);
    82. printf("%c", 'X');
    83. printf("^%d", n);
    84. }
    85. else {
    86. if (flag1 == 1)
    87. printf("+");
    88. else if (flag1 == 2)
    89. {
    90. printf("-");
    91. }
    92. if (flag2 == 1)
    93. {
    94. printf("%d", coeff);
    95. }
    96. if (flag3 == 1)
    97. printf("%c", 'X');
    98. if (flag4 == 1)
    99. printf("^%d", n);
    100. }
    101. }