检查2d数组中是否存在元素,如果为true则返回一些元素

时间:2014-12-04 20:27:13

标签: c++ arrays loops matrix

我对使用多维数组并不熟悉,在这里我试图看一个元素是否存在于二维数组中,如果存在,我想要某种指示。

// initialize an array 3x3
int matrix[3][3]; 
bool found = false;
// The matrix will be loaded with all 0 values, let's assume this has been done.

// Check if there are any 0's left in the matrix...

for(int x = 0; x < 3; x++){
    for(int y = 0; y < 3; y++){
        if(matrix[x][y] == 0){
           break; // << HERE I want to exit the entire loop.
        }else{
            continue; // Continue looping till you find a 0, if none found then break out and make: found = true;
        }
    }
}

2 个答案:

答案 0 :(得分:1)

控制标志很有用:

bool found = false;
for (unsigned int row = 0; (!found) && (row < MAX_ROWS); ++ row)
{
  for (unsigned int column = 0; (!found) && (column < MAX_COLUMNS); ++ column)
  {
    if (matrix[row, column] == search_value)
    {
       found = true;
    }
  }
}

编辑1:
如果您想保留rowcolumn值,则需要在每个循环中break

bool found = false;
for (unsigned int row = 0; (!found) && (row < MAX_ROWS); ++ row)
{
  for (unsigned int column = 0; (!found) && (column < MAX_COLUMNS); ++ column)
  {
    if (matrix[row, column] == search_value)
    {
       found = true;
       break;
    }
  }
  if (found)
  {
    break;
  }
}

答案 1 :(得分:0)

试试这个: -

int matrix[3][3];
bool found = false;


for(int x = 0; x < 3 && found == false; x++)
  {
    for(int y = 0; y < 3; y++)
     {
       if(matrix[x][y] == 0)
       {
          found = true;
          break; 
       }
     }
 }
if (found)
 cout<<"0 exists in the matrix";
else
 cout<<"0 doesn't exist in the matrix";