c - 在 C 中打印 3 个带边框的板
问题描述
所以我试图打印 3 个板,每个都是 2d 数组,我设法打印了第一个,但我在其他 2 个方面遇到了问题。感谢任何帮助。
void imprimir_3_tableros(char tablero1[10][10],char tablero2[10][10],char tablero3[10][10]){
int i;
int j;
printf(" A B C D E F G H I J A B C D E F G H I J A B C D E F G H I J\n");
printf("╔════╦════╦════╦════╦════╦════╦════╦════╦════╦════╗ ╔════╦════╦════╦════╦════╦════╦════╦════╦════╦════╗ ╔════╦════╦════╦════╦════╦════╦════╦════╦════╦════╗\n");
for (i = 0; i < 10; ++i) {
if(i != 0){
printf("╠════╬════╬════╬════╬════╬════╬════╬════╬════╬════╣ ╠════╬════╬════╬════╬════╬════╬════╬════╬════╬════╣ ╠════╬════╬════╬════╬════╬════╬════╬════╬════╬════╣\n");
}
for (j = 0; j < 10; ++j) {
printf("║ %d ", tablero1[i][j]);
}
printf("║\n");
}
printf("╚════╩════╩════╩════╩════╩════╩════╩════╩════╩════╝ ╚════╩════╩════╩════╩════╩════╩════╩════╩════╩════╝ ╚════╩════╩════╩════╩════╩════╩════╩════╩════╩════╝\n");
}
解决方案
添加额外的循环来打印表二和三:
void imprimir_3_tableros(char tablero1[10][10],char tablero2[10][10],char tablero3[10][10]){
int i;
int j;
printf(" A B C D E F G H I J A B C D E F G H I J A B C D E F G H I J\n");
printf("╔════╦════╦════╦════╦════╦════╦════╦════╦════╦════╗ "
"╔════╦════╦════╦════╦════╦════╦════╦════╦════╦════╗ "
"╔════╦════╦════╦════╦════╦════╦════╦════╦════╦════╗\n");
for (i = 0; i < 10; ++i) {
if(i != 0)
printf("╠════╬════╬════╬════╬════╬════╬════╬════╬════╬════╣ "
"╠════╬════╬════╬════╬════╬════╬════╬════╬════╬════╣ "
"╠════╬════╬════╬════╬════╬════╬════╬════╬════╬════╣\n");
for (j = 0; j < 10; ++j)
printf("║ %d ", tablero1[i][j]);
printf("║ ");
for (j = 0; j < 10; ++j)
printf("║ %d ", tablero2[i][j]);
printf("║ ");
for (j = 0; j < 10; ++j)
printf("║ %d ", tablero3[i][j]);
printf("║\n");
}
printf("╚════╩════╩════╩════╩════╩════╩════╩════╩════╩════╝ "
"╚════╩════╩════╩════╩════╩════╩════╩════╩════╩════╝ "
"╚════╩════╩════╩════╩════╩════╩════╩════╩════╩════╝\n");
}
根据需要调整间距。