How to set a specific column of a matrix to zero if a particular element in that column 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_column_include_number(int matrix[][COLS], int rows, int col, int number) {
    for (int i = 0; i < rows; i++) {
        if (matrix[i][col] == number) {
            return 1;
        }
    }
      
    return 0;
}
 
void set_matrix_column_to_zero(int matrix[][COLS], int rows, int col) {
    for (int i = 0; i < rows; i++) {
        matrix[i][col] = 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,  0,  1,  9, 8 },
            { 29,  4,  7,  9, 18, 6 } };
    
    int col = 2;
    int rows = sizeof(matrix) / sizeof(matrix[0]);
     
    if (matrix_column_include_number(matrix, rows, col, 0)) {
        set_matrix_column_to_zero(matrix, rows, col);
    }
     
    print_matrix(matrix, rows, COLS);
}
    
    
    
/*
run:
    
    4    7    0   18   29    0
    1    9    0   99    4    3
    9   17    0    0    7    5
   19   49    0    1    9    8
   29    4    0    9   18    6
    
*/

 



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