关于#二维数组#打印正方形,如何解决

img


想用字符二维数组打印一个#正方形#,运行后为什么会是这样的,如何解决。

map 的默认应该为 ' ',你这个直接就null了

map中,不是 # 的,就给一个空格

img


#include <stdio.h>
void Map() {
    int i, j;
    char map[9][9];
    
    for (i = 0; i < 9; i++) {
        for (j = 0; j < 9; j++)
        {
            map[i][j] = ' ';
        }
    }
    
    for (i = 0; i < 9; i++)
    {
        map[0][i] = map[8][i] = '#';
        map[i][0] = map[i][8] = '#';
    }
    for (i = 0; i < 9; i++) {
        for (j = 0; j < 9; j++)
            printf(" %c", map[i][j]);
        printf("\n");
    }
}

int main()
{
    Map();
    return 0;
}

img


void Map() {
    int i, j;
    char map[9][9] = {NULL};
    for (i = 0; i < 9; i++)
    {
        map[0][i] = map[8][i] = '#';
        map[i][0] = map[i][8] = '#';
    }
    for (i = 0; i < 9; i++) {
        for (j = 0; j < 9; j++)
        {
            if (map[i][j] != '#')
                printf(" ");
            else
                printf("%c", map[i][j]);
        }
        printf("\n");
    }
}