无限循环(do - while)


for(int m=0;m<=3;m++){
    for(int n=0;n<=3;n++){
        if(n>0){
            int c =n,t=1;
            do{
                t = up_key_no0(&puzz[c][m]);
                c--;
            }while(t==1||c>=0);
        }
    }
}
int up_key_no0(int *puzy){
    int *puzx = puzy -4;
    int down = *puzy;
    int up = *puzx;
    if(((down==up)||(up==0))&&down!=0){
        *puzx += *puzy;
        *puzy=0;
        return 1;
    }
    else{
        return 0;
    }
}

下面的代码是错误的吗?是=>请回复。

是一个4X4的二维数组

当t为1,c为0时,do-while循环可以超出表的范围到负索引。因此,也许您应该将条件更改为(t == 1 && c >= 0)(而不是或)。

我不知道这是什么语言,但如果它像Java, "for"应该是这样的:

for (var i=0;i<=3;i++) {
}

你的想法可能是错的。while中的"=="应该是"="。

while(t=1||c>=0) {
}

相关内容

  • 没有找到相关文章

最新更新