为什么 while 循环在这段代码中不起作用?

时间:2021-04-22 01:07:56

标签: c while-loop

所以我使用 while 循环收到一条错误消息,我不知道为什么。它说它在 'matrix' 之前需要一个 ')' 。我是新手,所以它可能很容易解决。这个想法是重复 scanf 直到矩阵被 '10' 填充。这是代码:

int main()
{int matrix [3][3];
int xd;
int yd;



matrix [0][0]=0;
matrix [0][1]=0;
matrix [0][2]=0;
matrix [1][0]=1;
matrix [1][1]=1;
matrix [1][2]=0;
matrix [2][0]=0;
matrix [2][1]=0;
matrix [2][2]=0;

while
    (matrix [0][0]!=0
matrix [0][1]!=10
matrix [0][2]!=10
matrix [1][0]!=10
matrix [1][1]!=10
matrix [1][2]!=10
matrix [2][0]!=10
matrix [2][1]!=10
matrix [2][2]!=10
){
 printf("coordenadas de disparo x \n");
 scanf("%d",&xd);
 printf("coordenadas de disparo y \n");
 scanf("%d",&yd);
 printf(" coordenadas %d %d \n" , xd, yd);
    /*ja usada*/
 if (matrix [xd][yd] == 10)
    {printf("invalido");}
    /*agua*/
 if (matrix [xd][yd] == 0)
    {printf("-");
    /*acerta*/
    matrix [xd][yd] = 10 ;}
 else printf("%d", matrix [xd][yd]);
  matrix [xd][yd] = 10;}



}



   
    

1 个答案:

答案 0 :(得分:0)

如上所述,您需要在条件之间添加逻辑运算符。

所以对于 or 运算符,代码看起来像这样。

while
(matrix [0][0]!=0 ||
matrix [0][1]!=10 ||
matrix [0][2]!=10 ||
matrix [1][0]!=10 ||
matrix [1][1]!=10 ||
matrix [1][2]!=10 ||
matrix [2][0]!=10 ||
matrix [2][1]!=10 ||
matrix [2][2]!=10 
){

//...code

}

对于 and 运算符,它看起来像这样。

while 
(matrix [0][0]!=0 &&
matrix [0][1]!=10 &&
matrix [0][2]!=10 &&
matrix [1][0]!=10 &&
matrix [1][1]!=10 &&
matrix [1][2]!=10 &&
matrix [2][0]!=10 &&
matrix [2][1]!=10 &&
matrix [2][2]!=10
){

//...code

}