在 C 中并排打印二维数组

Printing 2D-Arrays side-by-side in C

以下是我的功能:

void initialize(char box[NROW][NCOL]){
    int x,y;
    for(x=0; x<NROW; x++)
        for(y=0; y<NCOL; y++)
            if (x==0 || x==NROW-1 || y==0 || y==NCOL-1)
                box [x][y] = '=';
            else{
                 box[x][y]=' ';
            }

}

void display(char box[NROW][NCOL]){

    int x,y;
    for(x=0; x<NROW; x++){
    for(y=0; y<NCOL; y++){
       printf(" %c ", box[x][y]);
    }
        printf("\n");
    }
}    

void puzp1(char puz1[NROW][NCOL]){

    int x,y;

    for(x=1; x<NROW-1; x++){
    for(y=1; y<=x; y++){
        puz1[x][y]='*';
    }
    }

}

void puzp2(char puz2[NROW][NCOL]){

    int b,c;
    for(b=1; b<NROW; b++){
        for(c=1; c<NROW-b; c++){
            if(b!=3 && c!=3 ){
                puz2[b][c]='+';
                }
                }
            }
}

以下是我的主要内容:

int main(void){

    char ar1[NROW][NCOL];
    char ar2[NROW][NCOL];

    printf("Puzzle Piece 1:\n");
    initialize(ar1);
    puzp1(ar1);
    display(ar1);


    printf("Puzzle Piece 2:\n");
    initialize(ar2);
    puzp2(ar2);
    display(ar2);

我发现还有一个帖子有类似的问题,但它不能完全满足我的需要。这里发生的事情是 initialize 生成一个空心矩形,puzp1puzp2 决定内容,display 打印内容。

我可以并排打印这两个二维数组吗?如果可以,怎么做?

NROW 和 NCOL 是常量。

谢谢。

假设二维数组大小相同,那么对于每一行,您只需打印第一个框中的行,然后是一些分隔文本,然后是第二个框中的行。

void display2(char box1[NROW][NCOL], char box2[NROW][NCOL]){
    int x,y;

    for(x=0; x<NROW; x++){
        for(y=0; y<NCOL; y++){
           printf(" %c ", box1[x][y]);
        }
        printf("   ");
        for(y=0; y<NCOL; y++){
           printf(" %c ", box2[x][y]);
        }
        printf("\n");
    }
}