井字棋,英文名叫Tic-Tac-Toe,是一种在3*3格子上进行的连珠游戏,和五子棋类似,由于棋盘一般不画边框,格线排成井字故得名。游戏需要的工具仅为纸和笔,然后由分别代表O和X的两个游戏者轮流在格子里留下标记(一般来说先手者为X),任意三个标记形成一条直线,则为获胜。(来自百度百科)
请你判断后手者是否存在任意三个标记形成一条直线?
输入格式:
第一行输入一个整数t(1<=t<=1000)代表t组输入。接下来每组输入一个井字棋游戏局面。
输出格式:
若后手者存在任意三个标记形成一条直线输出"yes",否则输出"no"。
输入样例:
在这里给出一组输入。例如:
2
OOO
XXX
OOO
OOO
XXO
OXX
输出样例:
在这里给出相应的输出。例如:
yes
yes
我的代码如下:
#include<stdio.h>
int main()
{
int i,n,j,k,temp1,temp2,temp3,temp4,m;
char a[10][10];
while(scanf("%d",&n)!=EOF)
{
getchar();
for(i=0;i<n;i++)
{
m=0;
temp3=0;
temp4=0;
for(j=0;j<3;j++)
{
gets(a[j]);
}
for(j=0;j<3;j++)
{
temp1=0;
temp2=0;
for(k=0;k<3;k++)
{
if(a[j][k]=='O' || a[j][k]!='O' && a[j][k]!='X')
{
temp1++;
}
if(a[k][j]=='O' || a[k][j]!='O' && a[k][j]!='X')
{
temp2++;
}
}
if(temp1==3 || temp2==3)
{
m=1;
break;
}
if(a[j][j]=='0' || a[j][j]!='O' && a[j][j]!='X')
{
temp3++;
}
if(a[j][2-j]=='O' || a[j][2-j]!='O' && a[j][2-j]!='X')
{
temp4++;
}
}
if(temp4==3 || temp3==3 || m==1)
{
printf("yes\n");
}
else
{
printf("no\n");
}
getchar();
}
}
return 0;
}
各位大佬可否帮我康康哪错了