Вы можете сделать так, чтобы функция showboard()
принимала ссылку на массив 3x3 chars
.Странно выглядящий параметр char (&squares)[3][3]
означает «ссылку на массив 3x3 с именем chars
с именем squares
».
void showboard(char (&squares)[3][3])
{
std::cout << squares[0][0] << "|" << squares[0][1] << "|"
<< squares[0][2] << "\n" << "-+-+-"<< "\n"
<< squares[1][0] << "|" << squares[1][1] << "|"
<< squares[1][2] << "\n" << "-+-+-"<< "\n"
<< squares[2][0] << "|" << squares[2][1] << "|"
<< squares[2][2] << std::endl;
}
int main()
{
char s[3][3] = { {'1', '2', '3'}, {'4', '5', '6'}, {'7', '8', '9'} };
showboard(s);
}
В качестве альтернативы приведена реализация, в которой вместо этого используется цикл for:
void showboard(char (&squares)[3][3])
{
for(int i = 0; i < 3; ++i)
{
for(int j = 0; j < 3; ++j)
{
std::cout << squares[i][j];
if(j < 2) std::cout << "|";
}
std::cout << "\n";
if(i < 2) std::cout << "-+-+-" << std::endl;;
}
}