Yuxuan7781 2022-10-23 17:16 采纳率: 100%
浏览 14
已结题

c语言井字棋结果判定出错

做的井字棋结果判定,输出总是出错而且输出的是000,111 , 222这样的三个字符而非设计的0 ,1, 2
#include <stdio.h>

int main()
{
const int size = 3;
int board[size][size];
int i,j;
int result = -1;//-1是平局,0是O赢了,1是X赢了
for ( i=0; i<size; i++ ) {//输入棋子结果
for ( j=0; j<size; j++ ) {
scanf("%d", &board[i][j]);
}
}

for ( i=0; i<size ; i++ ) {
    int x0=0, x1=0, x2=0, x3=0, o0=0, o1=0, o2=0, o3=0;
    for ( j=0; j<size; j++ ) {//横线方向 
        if ( board[i][j] == 1 ) {
            x0 ++;
        } else {
            o0 ++;
        }
        if ( board[j][i] == 1 ) {//竖线方向 
            x1 ++;
        } else {
            o1 ++;
        }
        if ( board[i][i] == 1 ) {//斜方向1 
            x2 ++;
        } else {
            o2 ++;
        }
        if ( board[i][size-1-i] == 1) {//斜方向2 
            x3 ++; 
        } else {
            o3 ++;
        }
    }
    if ( x0==size || x1==size || x2==size || x3==size ) {//X赢的判定 
        result = 1;
    }
    if ( o0==size || o1==size || o2==size || o3==size ) {//O赢的判定 
        result = 0;
    } 
    printf("%d", result);//输出出结果 
} 
  
return 0;

}

  • 写回答

2条回答 默认 最新

  • .LAL. C/C++领域新星创作者 2022-10-23 17:47
    关注
    
    #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; 
    }
    
    
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 10月31日
  • 已采纳回答 10月23日
  • 创建了问题 10月23日

悬赏问题

  • ¥15 用hfss做微带贴片阵列天线的时候分析设置有问题
  • ¥50 我撰写的python爬虫爬不了 要爬的网址有反爬机制
  • ¥15 Centos / PETSc / PETGEM
  • ¥15 centos7.9 IPv6端口telnet和端口监控问题
  • ¥120 计算机网络的新校区组网设计
  • ¥20 完全没有学习过GAN,看了CSDN的一篇文章,里面有代码但是完全不知道如何操作
  • ¥15 使用ue5插件narrative时如何切换关卡也保存叙事任务记录
  • ¥20 海浪数据 南海地区海况数据,波浪数据
  • ¥20 软件测试决策法疑问求解答
  • ¥15 win11 23H2删除推荐的项目,支持注册表等