Вот работающий код :#include <iostream>
using namespace std;
char a [3] [3] = {{' ',' ',' '},
{' ',' ',' '},
{' ',' ',' '}};
void print_a()
{
for (int i=0; i<3; i++)
{
cout<<a[i][0]<<" | "<<a[i][1]<<" | "<<a[i][2];
if (i<2) {cout<<endl<<"----------";}
cout<<endl;
}
}
bool who_win(int x, int y)
{
if (a[x][y]=='X'){cout<<"Первый игрок выиграл!"<<endl; return true;}
if (a[x][y]=='O'){cout<<"Второй игрок выиграл!"<<endl; return true;}
return false;
}
void igrok_1()
{
int l;
cout<<"Ход первого игрока: ";
L:cin>>l;
cout<<endl;
if (l==1) {if (a[0][0]==' ') {a[0][0]='X';}
else {cout<<"Ошибка: поле занято. Поробуйте ещё раз:"; goto L;}}
if (l==2) {if (a[0][1]==' ') {a[0][1]='X';}
else {cout<<"Ошибка: поле занято. Поробуйте ещё раз:"; goto L;}}
if (l==3) {if (a[0][2]==' ') {a[0][2]='X';}
else {cout<<"Ошибка: поле занято. Поробуйте ещё раз:"; goto L;}}
if (l==4) {if (a[1][0]==' ') {a[1][0]='X';}
else {cout<<"Ошибка: поле занято. Поробуйте ещё раз:"; goto L;}}
if (l==5) {if (a[1][1]==' ') {a[1][1]='X';}
else {cout<<"Ошибка: поле занято. Поробуйте ещё раз:"; goto L;}}
if (l==6) {if (a[1][2]==' ') {a[1][2]='X';}
else {cout<<"Ошибка: поле занято. Поробуйте ещё раз:"; goto L;}}
if (l==7) {if (a[2][0]==' ') {a[2][0]='X';}
else {cout<<"Ошибка: поле занято. Поробуйте ещё раз:"; goto L;}}
if (l==8) {if (a[2][1]==' ') {a[2][1]='X';}
else {cout<<"Ошибка: поле занято. Поробуйте ещё раз:"; goto L;}}
if (l==9) {if (a[2][2]==' ') {a[2][2]='X';}
else {cout<<"Ошибка: поле занято. Поробуйте ещё раз:"; goto L;}}
}
void igrok_2()
{
int k;
cout<<"Ход второго игрока: ";
K:cin>>k;
cout<<endl;
if (k==1) {if (a[0][0]==' ') {a[0][0]='O';}
else {cout<<"Ошибка: поле занято. Поробуйте ещё раз:"; goto K;}}
if (k==2) {if (a[0][1]==' ') {a[0][1]='O';}
else {cout<<"Ошибка: поле занято. Поробуйте ещё раз:"; goto K;}}
if (k==3) {if (a[0][2]==' ') {a[0][2]='O';}
else {cout<<"Ошибка: поле занято. Поробуйте ещё раз:"; goto K;}}
if (k==4) {if (a[1][0]==' ') {a[1][0]='O';}
else {cout<<"Ошибка: поле занято. Поробуйте ещё раз:"; goto K;}}
if (k==5) {if (a[1][1]==' ') {a[1][1]='O';}
else {cout<<"Ошибка: поле занято. Поробуйте ещё раз:"; goto K;}}
if (k==6) {if (a[1][2]==' ') {a[1][2]='O';}
else {cout<<"Ошибка: поле занято. Поробуйте ещё раз:"; goto K;}}
if (k==7) {if (a[2][0]==' ') {a[2][0]='O';}
else {cout<<"Ошибка: поле занято. Поробуйте ещё раз:"; goto K;}}
if (k==8) {if (a[2][1]==' ') {a[2][1]='O';}
else {cout<<"Ошибка: поле занято. Поробуйте ещё раз:"; goto K;}}
if (k==9) {if (a[2][2]==' ') {a[2][2]='O';}
else {cout<<"Ошибка: поле занято. Поробуйте ещё раз:"; goto K;}}
}
bool win()
{
for (int x=0; x<3; x++)
{
if (a[x][0]!=' ' && a[x][0]==a[x][1] && a[x][1]==a[x][2]){if(who_win(x, 0)==true) return true;}
if (a[0][x]!=' ' && a[0][x]==a[1][x] && a[1][x]==a[2][x]){if(who_win(0, x)==true) return true;}
}
if (a[0][0]!=' ' && a[0][0]==a[1][1] && a[1][1]==a[2][2]){if(who_win(0, 0)==true) return true;}
if (a[0][2]!=' ' && a[0][2]==a[1][1] && a[1][1]==a[2][0]){if(who_win(0, 2)==true) return true;}
return false;
}
int main()
{
print_a();
igrok_1();
print_a();
if(win()==true) return 0;
igrok_2();
print_a();
if(win()==true) return 0;
igrok_1();
print_a();
if(win()==true) return 0;
igrok_2();
print_a();
if(win()==true) return 0;
igrok_1();
print_a();
if(win()==true) return 0;
igrok_2();
print_a();
if(win()==true) return 0;
igrok_1();
print_a();
if(win()==true) return 0;
igrok_2();
print_a();
if(win()==true) return 0;
igrok_1();
print_a();
if(win()==true) return 0;
cout<<"Ничья!"<<endl;
return 0;
}
P. S с goto до сих пор ничего не поделал(