#include <iostream>
#include <iomanip>
using namespace std;
int main()
{
const int N = 4; // размер матрицы
int n = N; // кол-во строк
int k = N; // кол-во столбцов
int i, j;
int a = 0;
int matrix[N][N] = { 1, 2, 3, 4, // заполняем матрицу
2, 0, 2, 2,
5, 2, 6, 7,
8, 2, 9, 9 };
// задача состоит в том чтобы удалить стору с 0 и столбец с 0
// в данной матрице вообщем надо удалить 0 и все 2
for ( i = 0; i < N; i++)
for ( j = 0; j < N; j++)
{
if( j % 4 == 0)
cout << endl;
cout << setw(3) << matrix[i][j]; // выводим исходную матрицу
}
cout << endl << endl;
for ( i = 0; i < n; i++) // удаление строки
for ( j = 0; j < k; j++)
if(matrix[i][j] == 0) // когда встречаетя 0
{
for ( i; i < n; i++)
for ( a = 0; a < k; a++)
matrix[i][a] = matrix[i+1][a]; // присваиваем элементы следующей строки
n--;// уменьшаем строки на 1
for ( j; j < k-1; j++) // удаление столбца
for ( a = 0; a < n; a++)
matrix[a][j] = matrix[a][j+1]; // присваниваем элементы следующего столбца
k--; // уменьшаем столбцы на 1
}
for ( i = 0; i < n; i++) // выводим полученную матрицу
for ( j = 0; j < k; j++)
{
if( j % 4 == 0)
cout << endl;
cout << setw(3) << matrix[i][j];
}
cout << endl << endl;
}
Следующий вариант
#include <iostream>
#include <iomanip>
using namespace std;
int main()
{
const int N = 4; // размер матрицы
int n = N; // кол-во строк
int k = N; // кол-во столбцов
int i, j;
int a = 0;
int flag = 0;
int matrix[N][N] = { 1, 2, 3, 4, // заполняем матрицу
2, 0, 2, 2,
5, 2, 6, 7,
8, 2, 9, 9 };
// задача состоит в том чтобы удалить стору с 0 и столбец с 0
// в данной матрицв вообщем надо удалить 0 и все 2
for ( i = 0; i < N; i++)
for ( j = 0; j < N; j++)
{
if( j % 4 == 0)
cout << endl;
cout << setw(3) << matrix[i][j]; // выводим исходную матрицу
}
cout << endl << endl;
for ( i = 0; i < n; i++) // удаление строки
for ( j = 0; j < k; j++)
if(matrix[i][j] == 0) // когда встречаетя 0
{
if( flag == 0)
{
for ( i; i < n; i++)
for ( a = 0; a < k; a++)
matrix[i][a] = matrix[i+1][a]; // присваиваем элементы следующей строки
n--;// уменьшаем строки на 1
for ( j; j < k-1; j++) // удаление столбца
for ( a = 0; a < n; a++)
matrix[a][j] = matrix[a][j+1]; // присваниваем элементы следующего столбца
k--; // уменьшаем столбцы на 1
}
flag++;
}
for ( i = 0; i < n; i++) // выводим полученную матрицу
for ( j = 0; j < k; j++)
{
if( j % 4 == 0)
cout << endl;
cout << setw(3) << matrix[i][j];
}
cout << endl << endl;
}