[ create a new paste ] login | about

Link: http://codepad.org/bcvWwAF5    [ raw code | output | fork ]

C++, pasted on Dec 20:
#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;
}


Output:
1
2
1 2 3 4 
5 6 7 8 


Create a new paste based on this one


Comments: