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 <stdio.h>
    
#define COLS 6
 
void print_matrix(int matrix[][COLS], int rows, int cols) {
    int i, j;
        
    for (i = 0; i < rows; i++) {
        for (j = 0; j < cols; j++) {
            printf("%5i", matrix[i][j]);
        }
            
        printf("\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);
    
    return 0;
}
    
    
    
/*
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 10, 2024 by avibootz
...