二维数组,井字棋

二维数组
输入时要注意
1.每行一个{},用‘,’分隔
2. int a[3][5] =
3.
{{0,1,2,3,4},
{0,1,2,3,4},
{0,1,2,3,4}};

#include<stdio.h>
int main()
{
    const int size = 3;
    int board [size][size];
    int i, j;
    int numOfX;
    int numOfO;
    int result = -1;//-1没人赢;1X赢;0O赢

    //读入矩阵
    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++)//外循环检查每一行
{
    numOfO = 0;
    numOfX = 0;
    for(j=0; j<size; j++)//内循环检查这一行每一列
    {
        if(board[i][j]==1)
        {
            numOfX ++;
        }
        else
        {
            numOfO ++;
        }
        
    }
    if(numOfX==size)
    {
        result=0;
    }
    else if(numOfO==size)
    {
        result=1;
    }

}


//检查列与检查行类似
//检查行
for( j=0; j<size && result==-1; j++)
{
    numOfO = 0;
    numOfX = 0;
    for(i=0; i<size; i++)
    {
        if(board[i][j]==1)
        {
            numOfX ++;
        }
        else
        {
            numOfO ++;
        }
        
    }
    if(numOfX==size)
    {
        result=0;
    }
    else if(numOfO==size)
    {
        result=1;
    }

}

//检查对角线
numOfO = numOfX =0;
for(i=0;i<size;i++)
{
    if(board[i][i]==1)//主对角线每个值是11,22,33...
    {
        numOfX++;
    }
    else
    {
        numOfO++;
    }
     if(numOfX==size)
    {
        result=0;
    }
    else if(numOfO==size)
    {
        result=1;
    }

}

numOfO = numOfX =0;
for(i=0;i<size;i++)
{
    if(board[i][size-i-1]  ==1)//副对角线是所有的行数-所在的行数-1
    {
        numOfX++;
    }
    else
    {
        numOfO++;
    }
     if(numOfX==size)
    {
        result=0;
    }
    else if(numOfO==size)
    {
        result=1;
    }
}
if(result==1)
{
    printf("X");
}
else if(result==0)
{
    printf("O");
}
else if(result==-1)
{
    printf("no");
}
return 0;
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值