I think my code is correct but i am getting wrong answer.
Can you tell me where i am wrong?
#include<stdio.h>
int main()
{
int t,i,j,k,sym,winx,winy,x,o;
char a[3][4];
scanf("%d",&t);
for(i=0;i<t;i++)
{
winx=winy=x=o=0;
for(j=0;j<3;j++)
{
scanf("%s",&a[j]);
for(k=0;k<3;k++)
{
if(a[j][k]=='X')
{
x++;
}
else if(a[j][k]=='O')
{
o++;
}
}
}
if(o==x || x==o+1)
{
for(j=0;j<3;j++)
{
for(k=0;k<3-j;k++)
{
sym=a[j][k];
if(j==0 && k==0 && (sym=='X' || sym=='O'))
{
if((a[j][1]==sym && a[j][2]==sym) || (a[1][k]==sym && a[2][k]==sym) || (a[1][1]==sym && a[2][2]==sym))
{
if(sym=='X')
{
winx++;
}
else if(sym=='O')
{
winy++;
}
}
}
else if(j==1 && k==1 && (sym=='X' || sym=='O'))
{
if(a[0][2]==sym && a[2][0]==sym)
{
if(sym=='X')
{
winx++;
}
else if(sym=='O')
{
winy++;
}
}
}
else if(sym=='X' || sym=='O')
{
if(j==0)
{
if(a[1][k]==sym && a[2][k]==sym)
{
if(sym=='X')
{
winx++;
}
else if(sym=='O')
{
winy++;
}
}
}
else if(k==0)
{
if(a[j][1]==sym && a[j][2]==sym)
{
if(sym=='X')
{
winx++;
}
else if(sym=='O')
{
winy++;
}
}
}
}
}
}
if(winx!=0 && winy!=0)
{
printf("\nno");
}
else
{
printf("\nyes");
}
}
else
{
printf("\nno");
}
}
return 0;
}