//(c)Terminator
#include <iostream>
#include <cstring>
using namespace std;
int main(void){
const int ROWS = 5;
const int COLS = 4;
int mat[ROWS][COLS] = {
{ 1, 1, 0, 4 },
{ 2, 0, 3, 4 },
{ 3, 3, 3, 4 },
{ 4, 4, 3, 4 },
{ 5, 5, 3, 0 }
};
int i, j;
int rows = ROWS;
int cols = COLS;
//вывод исходной матрицы
for(i = 0; i < rows; ++i){
for(j = 0; j < cols; ++j)
cout << mat[i][j] << ' ';
cout.put('\n');
}
cout.put('\n');
//удаление
for(i = 0; i < rows; ++i){
for(j = 0; j < cols; ++j){
if(mat[i][j] != 0)
continue;
for(int r = 0; r < rows; ++r)
memcpy(&mat[r][j], &mat[r][j + 1],(cols-(j+1))*sizeof(int));
//смещение строк
for(int c = 0; c < cols; ++c){
for(int r = i; r < (rows - 1); ++r)
mat[r][c] = mat[r + 1][c];
}
--cols;
--rows;
--i;
j = 0;
}
}
//вывод обработаной матрицы
for(i = 0; i < rows; ++i){
for(j = 0; j < cols; ++j)
cout << mat[i][j] << ' ';
cout.put('\n');
}
return 0;
}
Ly8oYylUZXJtaW5hdG9yCiNpbmNsdWRlIDxpb3N0cmVhbT4KI2luY2x1ZGUgPGNzdHJpbmc+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7CgoKCmludCBtYWluKHZvaWQpewoJY29uc3QgaW50IFJPV1MgPSA1OwoJY29uc3QgaW50IENPTFMgPSA0OwoKCWludCBtYXRbUk9XU11bQ09MU10gPSB7CgkJeyAxLCAxLCAwLCA0IH0sCgkJeyAyLCAwLCAzLCA0IH0sCgkJeyAzLCAzLCAzLCA0IH0sCgkJeyA0LCA0LCAzLCA0IH0sCgkJeyA1LCA1LCAzLCAwIH0KCX07CgoJaW50IGksIGo7CglpbnQgcm93cyA9IFJPV1M7CglpbnQgY29scyA9IENPTFM7CgoJLy/QstGL0LLQvtC0INC40YHRhdC+0LTQvdC+0Lkg0LzQsNGC0YDQuNGG0YsKCWZvcihpID0gMDsgaSA8IHJvd3M7ICsraSl7CgkJZm9yKGogPSAwOyBqIDwgY29sczsgKytqKQoJCQljb3V0IDw8IG1hdFtpXVtqXSA8PCAnICc7CgkJY291dC5wdXQoJ1xuJyk7Cgl9Cgljb3V0LnB1dCgnXG4nKTsKCgoJLy/Rg9C00LDQu9C10L3QuNC1Cglmb3IoaSA9IDA7IGkgPCByb3dzOyArK2kpewoJCWZvcihqID0gMDsgaiA8IGNvbHM7ICsrail7CgkJCWlmKG1hdFtpXVtqXSAhPSAwKQoJCQkJY29udGludWU7CgkJCQoJCQlmb3IoaW50IHIgPSAwOyByIDwgcm93czsgKytyKQoJCQkJbWVtY3B5KCZtYXRbcl1bal0sICZtYXRbcl1baiArIDFdLChjb2xzLShqKzEpKSpzaXplb2YoaW50KSk7CgkJCQoJCQkvL9GB0LzQtdGJ0LXQvdC40LUg0YHRgtGA0L7QugoJCQlmb3IoaW50IGMgPSAwOyBjIDwgY29sczsgKytjKXsKCQkJCWZvcihpbnQgciA9IGk7IHIgPCAocm93cyAtIDEpOyArK3IpCgkJCQkJbWF0W3JdW2NdID0gbWF0W3IgKyAxXVtjXTsKCQkJfQoJCQktLWNvbHM7CgkJCS0tcm93czsKCQkJLS1pOwoJCQlqID0gMDsKCQl9Cgl9CgoJLy/QstGL0LLQvtC0INC+0LHRgNCw0LHQvtGC0LDQvdC+0Lkg0LzQsNGC0YDQuNGG0YsKCWZvcihpID0gMDsgaSA8IHJvd3M7ICsraSl7CgkJZm9yKGogPSAwOyBqIDwgY29sczsgKytqKQoJCQljb3V0IDw8IG1hdFtpXVtqXSA8PCAnICc7CgkJY291dC5wdXQoJ1xuJyk7Cgl9CglyZXR1cm4gMDsKfQ==