#include
int main()
{
int a[3][3],i,j,result=-1;
//输入数据
for(i=0;i<3;i++)
scanf("%d%d%d",&a[i][0],&a[i][1],&a[i][2]); //按行输入,空棋格则输入不为1或0的数
//判断行、列和对角线
for(i=0;i<3;i++)
{
//行
{
for(j=0;j<3;j++)
{
int numX=0,numO=0;
if(a[i][j]==1)
numX++;
else if(a[i][j]==0)
numO++;
if(numX==3){result=1;goto out;}
else if(numO=3){result=0;goto out;}
}
}
//列
{
for(j=0;j<3;j++)
{
int numX=0,numO=0;
if(a[j][i]==1)
numX++;
else if(a[j][i]==0)
numO++;
if(numX==3){result=1;goto out;}
else if(numO=3){result=0;goto out;}
}
}
//对角线
{
int numX=0,numO=0;
if(a[i][i]==1)numX++;
else if(a[i][i]==0)numO++;
if(numX==3){result=1;goto out;}
else if(numO=3){result=0;goto out;}
}
}
//输出结果
out:if(result==-1)printf("没有人赢");
else if(result==1)printf("X赢");
else if(result==0)printf("O赢");
return 0;
}
大lao们帮我看看哪里错了呗
修改如下,供参考:
#include <stdio.h>
int main()
{
int a[3][3], i, j, result = -1, numX = 0, numO = 0, numX1 = 0, numO1 = 0;
//输入数据
for (i = 0; i < 3; i++)
scanf("%d%d%d", &a[i][0], &a[i][1], &a[i][2]); //按行输入,空棋格则输入不为1或0的数
//判断行、列和对角线
for (i = 0; i < 3; i++)
{
//行
for (j = 0, numX = 0, numO = 0; j < 3; j++) //修改
{
if (a[i][j] == 1)
numX++;
else if (a[i][j] == 0)
numO++;
} //修改
if (numX == 3) { result = 1; goto out; }
else if (numO == 3) { result = 0; goto out; } //else if (numO = 3)
//列
for (j = 0, numX = 0, numO = 0; j < 3; j++) //修改
{
if (a[j][i] == 1)
numX++;
else if (a[j][i] == 0)
numO++;
} //修改
if (numX == 3) { result = 1; goto out; }
else if (numO == 3) { result = 0; goto out; } //else if (numO = 3)
}
numX = 0, numO = 0, numX1 = 0, numO1 = 0;
for (i = 0; i < 3; i++)
{
//对角线
for (j = 0; j < 3; j++)
{
if (i == j) {
if (a[i][j] == 1)
numX++;
else if (a[i][j] == 0)
numO++;
}
if (i + j == 2) {
if (a[i][j] == 1)
numX1++;
else if (a[i][j] == 0)
numO1++;
}
}
}
if (numX == 3 || numX1 == 3) { result = 1; goto out; }
else if (numO == 3 || numO1 == 3) { result = 0; goto out; } //else if (numO = 3)
//输出结果
out:if (result == -1)printf("没有人赢");
else if (result == 1)printf("X赢");
else if (result == 0)printf("O赢");
return 0;
}
你把int numX=0,numO=0;定义放到循环里面,它永远不是0就是1,永远也不会等于3呀
报啥错呀