#define N 3
#define M 3
#include <stdio.h>
char is_win(char arr[N][M], int n, int m)
{
int i, j;
//判断行
for (i = 0; i < n; i++)
{
if (arr[i][1] == arr[i][2] && arr[i][1] == arr[i][0])
{
return arr[i][1];
}
}
//判断列
for (i = 0; i < n; i++)
{
if (arr[1][i] == arr[2][i] && arr[1][i] == arr[0][i])
{
return arr[1][i];
}
}
//主对角线
for (i = 0; i < n - 1; i++)
{
if (arr[i][i] != arr[i + 1][i + 1])
break;
else
return arr[0][0];
}
//副对角线
for (i = 0; i < n - 1; i++)
{
if (arr[i][n - i -1] != arr[i + 1][n - i-2])
break;
else
return arr[0][n - 1];
}
return ' ';//注意要返回个值
//2 0//1 1//0 2//n-1
}
int main()
{
int i, j;
char board[N][M];
for (i = 0; i < N; i++)
{
for (j = 0; j < M; j++)
{
scanf(" %c", &board[i][j]);//这样才能生成3×3列
}
}
char flag = is_win(board, N, M);
if (flag == 'K')
printf("KiKi wins!");
else if (flag == 'B')
printf("BoBo wins!");
else
printf("No winner!");
}