二维字符数组

时间:2011-03-11 06:14:57

标签: c

#include <stdio.h>
#include <stdlib.h>
#define rsize 3
#define csize 3

int
main()
{
    char tictac[rsize][csize];
    int a, b;

    printf("WELCOME TO TIC TAC TOE \n");

    for(a = 0; a < rsize; a++)
    {
        for(b = 0; b < csize; b++)
        {
            printf("Enter X or O: ");
            scanf(" %c", &tictac[a][b]);
        }
    }
    for(a = 0; a < rsize; a++)
    {
        if (tictac[a][0] == tictac[a][1] && tictac[a][1] == tictac[a][2]);
        {
            printf("Row %d has all %c's \n", a, tictac[a][0]);
        }
        if (tictac[0][a] == tictac[1][a] && tictac[1][a] == tictac[2][a]);
        {
            printf("Column %d has all %c's \n", a, tictac[0][a]);
        }
    }

    system("pause");
    return(0);
}

它应该是一个3x3 tictac toe游戏,但它似乎没有工作。问题是if statement我不确定为什么它不起作用。有人帮帮我,指出我的问题吗?

2 个答案:

答案 0 :(得分:5)

if语句的中间有一些额外的分号,这些分号会导致它们为空。所以你的代码实际上是

if (...) {
   /* do nothing */
}
{
    printf(...
}

并且始终执行printfs。摆脱';'在')'和'{'

之间

答案 1 :(得分:1)

在IF(条件)之后,您放置了分号(;)。 删除它。