以下是我的职能:
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
生成一个空心矩形,puzp1
和puzp2
决定内容,display
打印内容。
我可以并排打印这两个2D阵列;如果可能的话,怎么样?
NROW和NCOL是常数。
谢谢。
答案 0 :(得分:1)
假设2D数组的大小相同,那么对于每一行,您只需要打印第一个框中的行,然后是一些分隔文本,然后是第二个框中的行。
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");
}
}