简单的五子棋问题
案例1本应该输出no却输出了yes
案例一如下
0 0 0 0 0
1 1 1 1 0
0 0 1 1 0
1 1 0 0 1
0 0 0 0 0
#include<stdio.h>
#include <iostream>
using namespace std;
int main()
{
int a[5][5] = {};
for (int i = 0; i < 5; i++)
{
for (int j = 0; j < 5; j++)
{
cin >> a[i][j];
}
}
for (int i = 0; i < 5; i++)
{
for (int j = 0; j < 5; j++)
{
if (a[i][j] == a[i][j+1]==
a[i][j] == a[i][j + 2]==
a[i][j] == a[i][j + 3]==
a[i][j] == a[i][j + 4]==1
)
cout << "yes";
return 0;
}
}
for (int j = 0; j < 5; j++)
{
for (int i = 0; i < 5; i++)
{
if (a[i][j] == a[i+1][j] ==
a[i+2][j] == a[i+3][j] ==
a[i+4][j]==1 )
cout << "yes";
return 0;
}
}
for (int i = 0; i < 5; i++)
{
for (int j = 0; j < 5; j++)
{
if (a[0][0] == a[1][1] == a[2][2] == a[3]
[3] == a[4][4]==1)
{
cout << "yes";
return 0;
}
if (a[0][4]==a[1][3]==a[2][2]==a[3][1]
==a[4][0]==1)
{
cout << "yes";
return 0;
}
}
}
cout << "no";
return 0;
}
运行结果及详细报错内容
我的思路:判断横排,竖排,左斜,右斜为1 其余皆输出no 以flag作为标记
怎么样修改它