首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >当3x3 tic tac toe板中的每一行和每一列都被X和O填充时,我如何结束循环?

当3x3 tic tac toe板中的每一行和每一列都被X和O填充时,我如何结束循环?
EN

Stack Overflow用户
提问于 2019-07-11 07:48:06
回答 1查看 27关注 0票数 0

因此,我要求用户在tic tac toe棋盘完全填满X和O后输入X和O。我希望程序结束,并且在填充后不要继续要求向棋盘输入值。所以我创建了一个整型变量count,并将其设置为0。在两个玩家每次都被要求输入X或O之后,我希望它在每一轮都递增,一旦count等于10,我希望整个it退出do while循环并结束函数。但这似乎不起作用,一直要求用户输入X和O。任何建议都会很有帮助,谢谢。

void CreateBoard(int m, int n, char board[][n])
{
    int i, j, position;
    int count = 0;
    do {
        SCAN:
        printf("Enter the number of the cell you want to insert X or O or enter -1 to exit: \n");
        scanf("%d", &position);

        if(position < 0){
            break;
        }
        if(position > 9){
            goto SCAN;
        }

        printf("Type X or O: \n");

        switch(position)
        {
            case 1: scanf(" %c", &board[0][0]); break;
            case 2: scanf(" %c", &board[0][1]); break;
            case 3: scanf(" %c", &board[0][2]); break;
            case 4: scanf(" %c", &board[1][0]); break;
            case 5: scanf(" %c", &board[1][1]); break;
            case 6: scanf(" %c", &board[1][2]); break;
            case 7: scanf(" %c", &board[2][0]); break;
            case 8: scanf(" %c", &board[2][1]); break;
            case 9: scanf(" %c", &board[2][2]); break;
        }

        for (int i = 0; i < m; i++)
        {
            for (int j = 0; j < n; j++)
            {
            printf("%c ", board[i][j]);
            if (j != 2)
                printf(" | ");
            }      
            if (i != 2)
                printf("\n------------");
            printf("\n");
        }

        count++;

        if(count == 10){
            break;
        }
    }while(position != -1);

}
EN

回答 1

Stack Overflow用户

发布于 2019-07-11 08:40:37

你有一个不一致的问题。

让我们在桌面上检查一下:

do块启动时,count为0。在代码块的末尾,是1。是1 == 10吗?不是的。下一个。

count是1。最后是2。是2 == 10吗?不是的。下一个。

count是2。最后是3。是3 == 10吗?不是的。下一个。

等等,直到:

count是9。最后是10。是10 == 10吗?是。出去吧。

让我们数一下你在这个块里的次数: 0,1,2,3,4,5,6,7,8,9。是10次。

所以,10个就太多了。你知道怎么解决的。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56979957

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档