How to print the boundary elements of a matrix in C++

2 Answers

0 votes
#include <iostream>
#include <vector>
  
void printMatrixBoundaries(std::vector<std::vector<int>> matrix) {
    int rows = matrix.size();
    int cols = matrix[0].size();

    for (int i = 0; i < rows; i++) {
        for (int j = 0; j < cols; j++) {
            if (i == 0 || j == 0 || i == rows - 1 || j == cols - 1) {
                std::cout << matrix[i][j] << " ";
            }
        }
    }
}
  
int main() {
    std::vector<std::vector<int>> matrix {
        { 1,  2,  3,  4,  5},
        { 6,  7,  8,  9, 10},
        {11, 12, 13, 14, 15},
        {16, 17, 18, 19, 20}
    };
    
  
    printMatrixBoundaries(matrix);
}
  
  
  
  
  
/*
run:
     
1 2 3 4 5 6 10 11 15 16 17 18 19 20 
     
*/

 



answered Jun 28, 2023 by avibootz
edited Jun 28, 2023 by avibootz
0 votes
#include <iostream>
#include <vector>
  
void printMatrixBoundaries(std::vector<std::vector<int>> matrix) {
    int rows = matrix.size();
    int cols = matrix[0].size();

    for (int j = 0; j < cols; j++) {
        std::cout << matrix[0][j] << " ";
    }
    
    for (int j = 0; j < cols; j++) {
        if (j == cols - 1) {
            for (int i = 1; i < rows; i++) {
                std::cout << matrix[i][j] << " ";
            }
        }
    }
    
    for (int j = cols - 2; j > -1; j--) {
         std::cout << matrix[rows - 1][j] << " ";
    }
    
    for (int i = rows - 2; i > 0; i--) {
         std::cout << matrix[i][0] << " ";
    }
}
    
int main() {
    std::vector<std::vector<int>> matrix {
        { 1,  2,  3,  4,  5},
        { 6,  7,  8,  9, 10},
        {11, 12, 13, 14, 15},
        {16, 17, 18, 19, 20}
    };
    
  
    printMatrixBoundaries(matrix);
}
  
  
  
  
  
/*
run:
     
1 2 3 4 5 10 15 20 19 18 17 16 11 6 
     
*/

 



answered Jun 28, 2023 by avibootz

Related questions

1 answer 72 views
1 answer 75 views
2 answers 84 views
2 answers 88 views
2 answers 84 views
1 answer 79 views
...