**
问题描述:
**
读入一个3*3的矩阵,矩阵中的数字为1表示该位置上有一个X,为0表示为O。
程序判断这个矩阵中是否有获胜的一方,输出表示获胜一方的字符X或O,或输出无人获胜。
#include<stdio.h>
int main()
{
const int size = 3;
int board[size][size];
int i,j;
int x,o;
int result = -1;
for(i=0;i<size;i++){
for(j=0;j<size;j++)
{
scanf("%d",&board[i][j]);
}
}
for(i=0;i<size&&result == -1;i++)
{
x=o=0;
for(j=0;j<size;j++)
{
if(board[i][j]==1)
x++;
else
o++;
}
if(o== size){
result = 0;
}
else if(x== size){
result = 1;
}
}/*检查行*/
if(result==-1)
{
for(j=0;j<size;j++)
{
x=o=0;
for(i=0;i<size;i++)
{
if(board[j][i]==1)
{
x++;
}
else
{
o++;
}
if(o==size){
result =0;
}
else if (x==size)
{
result =1;
}
}
}
}/*检查列*/
x=o = 0;
if(result == -1)
{
x=o = 0;
for(i=0;i<size;i++)
{
if(board[i][i] == 1)
{
x++;
}
else if (board[i][i] == 0)
{
o++;
}
if(o==size)
{
result = 0;
}
else if (x==size)
{
result = 1;
}
}
} /*检查正对角线*/
if(result == -1)
{
x=o = 0;
for(i=0;i<size;i++)
{
if(board[i][size-i-1]==1)
{
x++;
}
else
{
o++;
}
}
if(x==size)
{
result = 1;
}
else if(o==size)
{
result = 0;
}
}
switch(result)
{
case 0:
printf("0 win");
break;
case 1:
printf("x win");
break;
case -1:
printf("No win");
}
return 0;
}