c语言编程关于数组的疑惑

请问如何利用数组和循环进行计算机的输出
比如以下实例
使用循环语句在屏幕上打印“九九乘法表”。
⑴ 在第1行输出4个空格,以及标题:“九九乘法表”。
⑵ 每个算式的乘数小数在前,大数在后(例如:4 × 8 = 32)。
⑶ 每个算式的乘数与积的域宽为2,左对齐;每个算式结尾有2个额外空格。
⑷ 每个算式的积存放在二维数组array中。

乘数小数在前、大数在后又该怎么操作?
以及最后的输出结果究竟是算式还是乘积?


#include <stdio.h>

int main() {
    int array[9][9];

    printf("    九九乘法表\n");

    // 计算乘法表并存储在二维数组array中
    for (int i = 1; i <= 9; i++) {
        for (int j = 1; j <= 9; j++) {
            array[i-1][j-1] = i * j;
        }
    }

    // 输出乘法表
    for (int i = 1; i <= 9; i++) {
        for (int j = 1; j <= 9; j++) {
            if (i <= j) {
                printf("%d × %d = %2d  ", i, j, array[i-1][j-1]);
            }
        }
        printf("\n");
    }

    return 0;
}


int[][] array = new int[9][9];
for(int i = 0; i < 9; i++){
    for(int j = 0; j < 9; j++){
        array[i][j] = (i+1)*(j+1);
    }
}

System.out.println("    九九乘法表");
System.out.print("  | ");
for(int i = 1; i <= 9; i++){
    System.out.printf("%-2d ", i);
}
System.out.println();
System.out.println("--+---------------------------");
for(int i = 1; i <= 9; i++){
    System.out.printf("%-2d| ", i);
    for(int j = 1; j <= 9; j++){
        System.out.printf("%-2d ", array[i-1][j-1]);
    }
    System.out.println();
}

#include <stdio.h>  
  
int main() {  
    int i, j;  
    int array[10][2];  
    int n = 10;  
  
    // 输出九九乘法表  
    for (i = 0; i < n; i++) {  
        for (j = 0; j < n; j++) {  
            printf("%d\*%d=%d\t", i, j, array[i][j]);  
        }  
        printf("\n");  
    }  
  
    // 输出乘数小数在前、大数在后的乘法表  
    for (i = 0; i < n; i++) {  
        for (j = 0; j < n; j++) {  
            if (i > 0) {  
                printf("%d\*%d=%d\t", i, j, array[i][j]);  
            } else {  
                printf("%d\*%d=%d\n", i, j, array[i][j]);  
            }  
        }  
        printf("\n");  
    }  
  
    return 0;  
}