Tai priimam, kad n - stulpelių skaičius; m - elementų skaičius stulpelyje. Tai išesmės turi daryti ciklą cikle (tiksliau du ciklus viename cikle).
Pirmas ciklas, kad turi eiti per visus stulpelius nuo 1 iki n. Tame cikle darai antrą ciklą nuo 1 iki m, ir tikrini, kuris skaičius yra mažiausias per visą stulpelį. Tikini visas reikšmes. Kadangi mažiausias skaičius gali būti ir neigiamas darai priskyrimą, kad pirmas elementas yra mažiausias. min = m1. Tada tikrini antrą elementą su min. Jei min > m2, tada minimum priskiri m2 reikšmę. min = m2. Ir taip t.t. Galutiniame variante turi mažiausią stulpelio skaičių. Sekantis veiksmas visus to stulpelio skaičius pakeisti į min reikšmę trečias ciklas. m1 = min; m2 = min ir t.t. Šitas ciklas taip pat yra pirmame cikle.
#include <iostream>
using namespace std;
int main()
{
int n, m;
int A[100][100];
int nuli[100];
int nulj[100];
int l = 0;
cin >> n >> m;
for (int i = 0; i < n; i++)
{
for (int j = 0; j < m; j++)
{
cin >> A[i][j];
if (A[i][j]==0)
{
nuli[l] = i;
nulj[l]= j;
l++;
}
}
}
for (int i = 0; i < n; i++)
{
bool yra = false;
for (int o = 0; o < l; o++)
{
if (nuli[o] == i)
{
yra = true;
}
}
if (!yra)
{
for (int j = 0; j < m; j++)
{
bool yra2 = false;
for (int o = 0; o < l; o++)
{
if (nulj[o] == j)
{
yra2 = true;
}
}
if (!yra2)
{
cout << A[i][j];
cout << " ";
}
}
cout << endl;
}
}
}