How to set a specific row of a matrix to zero if a particular element in that row is zero with C++

1 Answer

0 votes
#include <iostream>
#include <iomanip>
  
#define COLS 6
   
void print_matrix(int matrix[][COLS], int rows, int cols) {
    for (int i = 0; i < rows; i++) {
        for (int j = 0; j < cols; j++) {
            std::cout << std::setw(4) << matrix[i][j] << " ";
        }
              
        std::cout << "\n";
    }
}
      
int matrix_row_include_number(int matrix[][COLS], int row, int cols, int number) {
    for (int j = 0; j < cols; j++) {
        if (matrix[row][j] == number) {
            return 1;
        }
    }
        
    return 0;
}
   
void set_matrix_row_to_zero(int matrix[][COLS], int row, int cols) {
    for (int j = 0; j < cols; j++) {
        matrix[row][j] = 0;
    }
}
      
int main() {
    int matrix[][COLS] = { 
            { 4, 7, 9, 18, 29, 0 },
            { 1, 9, 18, 99, 4, 3 },
            { 9, 17, 89, 0, 7, 5 },
            { 19, 49, 6, 1, 9, 8 },
            { 29, 4, 7, 9, 18, 6 } };
      
    int row = 2;
   
    if (matrix_row_include_number(matrix, row, COLS, 0)) {
        set_matrix_row_to_zero(matrix, row, COLS);
    }
       
    int rows = sizeof(matrix) / sizeof(matrix[0]);
       
    print_matrix(matrix, rows, COLS);
}
      
      
      
/*
run:
      
   4    7    9   18   29    0 
   1    9   18   99    4    3 
   0    0    0    0    0    0 
  19   49    6    1    9    8 
  29    4    7    9   18    6 
      
*/

 



answered Jul 10, 2024 by avibootz
edited Jul 12, 2024 by avibootz
...