如果条件不能在2d数组中工作,我的代码出了什么问题?

时间:2015-10-24 12:01:55

标签: arrays loops if-statement multidimensional-array

我试图让我的程序控制键取决于这3个控件的用户选择:

(a)         (b)           (c)

0 1 2       1 2 3         7 8 9             
3 4 5       4 5 6         4 5 6             
6 7 8       7 8 9         1 2 3    

我设法完成前两个但是对于我的第三个(键盘c)数字似乎没有出现正确他们随机出现,我错了什么:(

继承我的代码:

 int main(){
    int r,c,ui,cntr;
    char kb, aray[3][3]={{'.','.','.'},{'.','.','.'},{'.','.','.'}};

    map(aray);

printf(" Which keyboard method would u prefer? \n");
            scanf("%c", &kb);
    for(cntr=0;cntr<9;cntr++){

        printf("Please play ur next move! \n \n");
        scanf("%i", &ui);
        if(kb=='b'){
            ui--;
        }
        if(kb=='c' && 0<ui &&ui<4){
            ui+=5;
        }
        if(kb=='c' && 3<ui &&ui<7){
            ui--;
        }
        if(kb=='c' && 6<ui &&ui<10){
            ui-=7;
        }

        r=ui/3;
        c=ui%3;
        if(aray[r][c]=='X'){
            printf("Error choose a different spot! \n");
            cntr--;
                }else{
                aray[r][c]='X';
                system("cls");
                map(aray);
                }
    }   

1 个答案:

答案 0 :(得分:0)

问题已经解决;感谢Hauke S,我注意到在没有其他声明的情况下,我将继续改变新的ui!