newboynewg 2020-02-23 09:24 采纳率: 0%
浏览 815

PTA井字棋 AC不了请大佬康康哪错了?

井字棋,英文名叫Tic-Tac-Toe,是一种在3*3格子上进行的连珠游戏,和五子棋类似,由于棋盘一般不画边框,格线排成井字故得名。游戏需要的工具仅为纸和笔,然后由分别代表O和X的两个游戏者轮流在格子里留下标记(一般来说先手者为X),任意三个标记形成一条直线,则为获胜。(来自百度百科)

   请你判断后手者是否存在任意三个标记形成一条直线?

输入格式:
第一行输入一个整数t(1<=t<=1000)代表t组输入。接下来每组输入一个井字棋游戏局面。

输出格式:
若后手者存在任意三个标记形成一条直线输出"yes",否则输出"no"。
输入样例:
在这里给出一组输入。例如:

2
OOO
XXX
OOO

OOO
XXO
OXX

输出样例:
在这里给出相应的输出。例如:
yes
yes

我的代码如下:

#include<stdio.h>
int main()
{
    int i,n,j,k,temp1,temp2,temp3,temp4,m;
    char a[10][10];

    while(scanf("%d",&n)!=EOF)
    {
    getchar();
    for(i=0;i<n;i++)
    {
        m=0;
        temp3=0;
        temp4=0;
        for(j=0;j<3;j++)
        {
            gets(a[j]);
        }

        for(j=0;j<3;j++)
        {
             temp1=0;
             temp2=0;
            for(k=0;k<3;k++)
            {
                if(a[j][k]=='O' || a[j][k]!='O' && a[j][k]!='X')
                {
                    temp1++;
                }
                if(a[k][j]=='O' || a[k][j]!='O' && a[k][j]!='X')
                {
                    temp2++;
                }
            }
            if(temp1==3 || temp2==3)
            {
                m=1;
                break;
            }
            if(a[j][j]=='0' || a[j][j]!='O' && a[j][j]!='X')
            {
                temp3++;
            }
            if(a[j][2-j]=='O' || a[j][2-j]!='O' && a[j][2-j]!='X')
            {
                temp4++;
            }
        }

        if(temp4==3 || temp3==3 || m==1)
        {
            printf("yes\n");
        }
        else
        {
            printf("no\n");
        }
        getchar();
    }
    }

    return 0;
} 

各位大佬可否帮我康康哪错了

  • 写回答

1条回答 默认 最新

  • dabocaiqq 2020-02-23 15:23
    关注
    评论

报告相同问题?

悬赏问题

  • ¥15 关于#java#的问题,请各位专家解答!
  • ¥15 急matlab编程仿真二阶震荡系统
  • ¥20 TEC-9的数据通路实验
  • ¥15 ue5 .3之前好好的现在只要是激活关卡就会崩溃
  • ¥50 MATLAB实现圆柱体容器内球形颗粒堆积
  • ¥15 python如何将动态的多个子列表,拼接后进行集合的交集
  • ¥20 vitis-ai量化基于pytorch框架下的yolov5模型
  • ¥15 如何实现H5在QQ平台上的二次分享卡片效果?
  • ¥30 求解达问题(有红包)
  • ¥15 请解包一个pak文件