[ tripleqqqqq @ 13.06.2013. 22:07 ] @
Funckiji treba da se prosledi matrica(MAXN*MAXM) i brojevi m i n, ona treba da nadje u toj matrici novu matricu cije su dimenzije n*m, ali da svi elementi u novoj matrici budu veci od 0, i treba da vrati pokazivac na gornji levi clan nove matrice, ako takva matrica ne postoji treba da vrati NULL.

MAXN i MAXM su makro-i.

Na primer, ako se trazi matrica 3x3, a data je 4x6:
Code:

-1   5   9   8  -7   6
 5  -2   1   1   1   5
-4   8   1   2   3   4
-1   7   2   8   7  -5

Treba da vrati pokazivac na broj jedan, to je druga vrsta, treca kolona. Tj. na elemenat [1][2].

Code:

int
*pronadji(int n, int m, int** matrica)
{

}


Ako moze neka pomoc oko ovog, ne mora ceo kod, moze samo ideja ili nesto.

Unapred hvala!
[ glorius @ 14.06.2013. 00:43 ] @
Code:


bool pronadjiPodmatricu(int startIndexN, int startIndexM, int sizeN, int sizeM, int** matrica)
{
       for(int j=startIndexM;j<maxStartM + sizeM;++j)
       { 
             for(int i=startIndexN;i<maxStartN + sizeN;++i)
             {
                    if(matrica[j][i] < 0)
                    {
                         return false;
                    }
             }
       }
         
       return true;          
}

int *pronadji(int n, int m, int** matrica)
{
        // maxStart oznacava najveci index reda i kolone sa kojim pocinjemo podmatricu
        int maxStartN = MAXN - n;
        int maxStartM = MAXM - m;
        int* pResult = 0;

        for(int j=0;j<maxStartM;++j)
        { 
             for(int i=0;i<maxStartN;++i)
             {
                  if(pronadjiPodmatricu(i, j, n, m, matrica)
                  {
                        pResult = &matrica[j][i];
                  }
             }
        }

        return pResult;
}



Nije testirano tako da ako ima problema, slobodno javi :)

[ tripleqqqqq @ 14.06.2013. 01:19 ] @
To je to, radi, jedino cu da ubacim return pResult gore u uslovu da bi izaso iz funkcije cim nadje prvi, da ne ide do kraja, jer mislim da mi treba prvo pojavljivanje.

Hvala! :)