题解 | #井字棋#

井字棋

http://www.nowcoder.com/practice/0375c1d206ef48a3894f72aa07b2fdde

#include <stdio.h>

int main()
{   int i, j;
    char a[3][3] = { 0 };
    char flag = 0;
    for(i = 0; i < 3; i++)
        for ( j = 0; j < 3; j++)
            scanf(" %c", &a[i][j]);   //先输入元素
    for (int i = 0; i < 3; i++)    //先比较一行或一列的元素是否全部相同
    {
        if (a[i][0] == a[i][1] && a[i][1] == a[i][2] && a[i][2] != 'O')   //一行相同时
             //易错点,并不是三个元素连等,要用&&,而且三个元素必须是K或者B
        {
            flag = a[i][2];
            break;
        }
        if (a[0][i] == a[1][i] && a[1][i] == a[2][i] && a[2][i] != 'O')  //一列相同时
        {
            flag = a[2][i];
            break;
        }
    }

    if (a[0][0] == a[1][1] && a[1][1] == a[2][2] && a[2][2] != 'O') //主对角线相同时
        flag = a[2][2];
    if (a[0][2] == a[1][1] && a[1][1] == a[2][0] && a[2][0] != 'O')  //副对角线相同时
        flag = a[2][0];
    if ('K' == flag)
        printf("KiKi wins!\n");
    else if ('B' == flag)
        printf("BoBo wins!\n");
    else
        printf("No winner!\n");
    return 0;
}

全部评论

相关推荐

还挺简单的,有2道都是竞赛经典题啊
投递阿里巴巴控股集团等公司10个岗位
点赞 评论 收藏
分享
10天面了6次
flmz_Kk:强度好大,是无线复活吗
点赞 评论 收藏
分享
07-24 03:49
门头沟学院 Java
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务