编辑代码

#include <stdio.h>
int main() {
    int i, j;

    // 打印表头主要的精简点在于输出部分。原来的代码通过if - else语句分别处理输出数字和空格的情况,优化后的代码在printf函数中使用了条件运算符? :来直接判断是输出数字还是空格,这样减少了代码的行数,使代码更加简洁。同时,在输出数字时,将数字转换为字符进行输出,简化
    printf("%4c", '*');
    for (i = 1; i <= 9; i++) {
        printf("%4d", i);
    }
    printf("\n");

    // 打印乘法表主体      *     1   2   3   4   5   6   7   8   9
      1     1   2   3   4   5   6   7   8   9
      2         4   6   8   10  12  14  16  18
      3             9   12  15  18  21  24  27
      4                 16  20  24  28  32  36
      5                     25  30  35  40  45
      6                         36  42  48  54
      7                             49  56  63
      8                                 64  72
      9                                     81
      main()
      { int i,j;                                // 缓存行、列号
        printf("%4c",'*');                      // 打印'*'
        for(i=1;i<=9;i++){ printf("%4d",i); }  // 打印第一行
        printf("\n");                           // 第一行换行
        for(i=1;i<=9;i++){
            printf("%4d",i);                    // 打印第一列
          for(j=1;j<=9;j++){                   // 打印第2--10列
              if(j>=i){ printf("%4d",i*j); }   // 打印乘数
              else{ printf("%4c",' '); }        // 定义空格
            }
          printf("\n");                         // 换行
        }
      }
    for (i = 1; i <= 9; i++) {
        printf("%4d", i);
        for (j = 1; j <= 9; j++) {
            // 直接输出结果或者空格
      1     1   2   3   4   5   6   7   8   9
      2         4   6   8   10  12  14  16  18
      3             9   12  15  18  21  24  27
      4                 16  20  24  28  32  36
      5                     25  30  35  40  45
      6                         36  42  48  54
      7                             49  56  63
      8                                 64  72
      9                                     81
      main()
      { int i,j;                                // 缓存行、列号
        printf("%4c",'*');                      // 打印'*'
        for(i=1;i<=9;i++){ printf("%4d",i); }  // 打印第一行
        printf("\n");                           // 第一行换行
        for(i=1;i<=9;i++){
            printf("%4d",i);                    // 打印第一列
          for(j=1;j<=9;j++){                   // 打印第2--10列
              if(j>=i){ printf("%4d",i*j); }   // 打印乘数
              else{ printf("%4c",' '); }        // 定义空格
            }
          printf("\n");                         // 换行
        }
      }
            printf("%4c", j >= i? (i * j) + '0' : ' ');
        }
        printf("\n");
    }

    return 0;
}