#include <iostream>
int main(void){
const int N = 5;
const int M = 7;
int mat[N][M] = {
{1, 0, 2, 0, 3, 4, 0},
{0, 0, 0, 0, 0, 0, 0},
{0, 0, 0, 0, 0, 0, 0},
{5, 0, 6, 0, 7, 8, 0},
{0, 0, 0, 0, 0, 0, 0},
};
int n = N;
int m = M;
//удаление нулевых строк
int i, j;
for(i = 0; i < n; ++i){
j = 0;
while((j < m) && (mat[i][j] == 0))
++j;
if(j == m){
--n;
for(int k = i; k < n; ++k){
for(j = 0; j < m; ++j)
mat[k][j] = mat[k + 1][j];
}
--i;
}
}
//удаление нулевых столбцов
for(j = 0; j < m; ++j){
i = 0;
while((i < n) && (mat[i][j] == 0))
++i;
if(i == n){
--m;
for(int k = j; k < m; ++k){
for(i = 0; i < n; ++i)
mat[i][k] = mat[i][k + 1];
}
--j;
}
}
//выводим
for(i = 0; i < n; ++i){
for(j = 0; j < m; ++j)
std::cout << mat[i][j] << ' ';
std::cout << std::endl;
}
return 0;
}