Как сделать так, чтобы двумерный массив с ошибками отображался в распечатанном виде? - PullRequest
0 голосов
/ 02 октября 2019

Я работаю над игрой в крестики-нолики и у меня есть двухмерный массив символов для решетки 3x3 .

I Test напечатал значения в массиве и получил 0. Я планирую создать сетку вокруг выходных данных массива, но для этого выход должен быть пустым, а не 0. Пожалуйста, помогите, я хочу, чтобы вывод был ничем.

/*Malloced Array*/

array = (char**)malloc(sizeof(char) * row);

for(ii = 0; ii < row; ii++)
{
    arraySec = (char*)malloc(sizeof(char) * col);
    array[ii] = arraySec;
}

/*Test Print*/
for(ii = 0; ii < row; ii++)
{
    for(jj = 0; jj < col; jj++)
    {
        printf("\n%d:%d = %d", ii, jj, array[ii][jj]);
    }
}

Это вывод:

0:0 = 0

0:1 = 0

0:2 = 0

1:0 = 0

1:1 = 0

1:2 = 0

2:0 = 0

2:1 = 0

2:2 = 0

1 Ответ

1 голос
/ 02 октября 2019

ОК, поэтому, если вы хотите напечатать символ «пробел» (т.е. ничего не показывает) для любой позиции сетки, которая еще не «используется» (то есть содержит O или X), то вам нужнодобавьте / измените две вещи в своем коде.

Сначала вам нужно инициализировать ваш массив пустыми символами:

for(ii = 0; ii < row; ii++) {
    for(jj = 0; jj < col; jj++) {
        array[ii][jj] = ' '; // Set to the blank (space) character
    }
}

Затем в «пробной печати» вам нужно вывести символы в виде символов - не в виде чисел (целых чисел):

for(ii = 0; ii < row; ii++) {
    for(jj = 0; jj < col; jj++) {
        printf("\n%d:%d = %c", ii, jj, array[ii][jj]); // %c will print the character as such, but you won't see it!
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...