Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

poruszanie sie po tablicy dwuwymiarowej

Ostatnio zmodyfikowano 2019-01-29 00:22
Autor Wiadomość
robertos18
Temat założony przez niniejszego użytkownika
poruszanie sie po tablicy dwuwymiarowej
» 2019-01-28 22:53:59
Mam pewien problem mianowicie chce się dostać z lewego dolnego rogu tablicy do prawego gornego rogu tablicy i mam problem z poruszaniem się, poruszać się mogę tylko w gore i w prawo po największych wartosciach

C/C++
int table[ N ][ N ] =
{
    { 2, 3, 4, 2, 5 },
    { 5, 2, 1, 2, 2 },
    { 2, 4, 2, 2, 3 },
    { 1, 2, 2, 4, 3 },
    { 3, 2, 1, 2, 3 }
};
tworze sobie indeksy pomocnicze do tablicy
int row = N - 1, column = 0;
 i sprawdzam od 3 tak długo az indeksy w tablicy będą ustawione na
column == N - 1 && row == 0

C/C++
while( !( row == 0 && column == N - 1 ) ) {
    if( table[ row - 1 ][ column ] > table[ row ][ column + 1 ] )
    {
       
        cout << "do gory: [" << row - 1 << "]" << "[" << column << "]" << "=" << table[ row - 1 ][ column ] << " " << endl;
       
    }
    else
    {
        cout << "w prawo: [" << row << "]" << "[" << column + 1 << "]" << "=" << table[ column + 1 ][ row ] << " ";
    }
}
tylko nie potrafie dalej sie poruszac gdyz petla wykonuje sie w nieskoczonosc, prosiłbym o nakierowanie co mam zrobić lub przekształcic aby program zaczal chodzic tak jak powinien.
P-173773
pekfos
» 2019-01-28 22:58:05
Nie modyfikujesz zmiennych row i column.
P-173774
robertos18
Temat założony przez niniejszego użytkownika
» 2019-01-28 23:07:51
czyli musze stworzyć kolejna tablice ?
P-173775
YooSy
» 2019-01-28 23:12:54
W każdym obiegu pętli zmienne row i column mają taką samą wartość,
więc stoisz w jednym miejscu.
P-173776
robertos18
Temat założony przez niniejszego użytkownika
» 2019-01-28 23:30:36
hmm mam problem z tym żeby co każdy obrot pętli modyfikowalo mi nowa wartość jeżeli zmodyfikuje o + 1 to jest ok kolejny punkt mi wypisalo ale jak zrobić do końca z tym mam problem
C/C++
while( !( row == 0 && column == N - 1 ) ) {
    if( table[ row - 1 ][ column ] > table[ row ][ column + 1 ] )
    {
       
        cout << "do gory: [" << row - 1 << "]" << "[" << column << "]" << "=" << table[ row - 1 ][ column ] << " " << endl;
        row = N;
       
       
       
    }
    else
    {
        cout << "w prawo: [" << row << "]" << "[" << column + 1 << "]" << "=" << table[ column + 1 ][ row ] << " ";
        column = 1;
       
    }
}[ cpp ]
P-173777
pekfos
» 2019-01-28 23:33:58
Masz modyfikować te zmienne, więc zwykłe przypisywanie im stałych nie pomaga.

C/C++
cout << "w prawo: [" << row << "]" << "[" << column + 1 << "]" << "=" << table[ column + 1 ][ row ] << " ";
Zdajesz sobie sprawę, że w tym miejscu źle wypisujesz wartość z tablicy?
P-173778
robertos18
Temat założony przez niniejszego użytkownika
» 2019-01-28 23:47:32
tak powinno być
cout << "w prawo: [" << row << "]" << "[" << column + 1 << "]" << "=" << table[ row ][ colum + 1 ] << " ";

a z tym modyfikowaniem w końcu się udało
C/C++
while( !( row == 0 && column == N - 1 ) ) {
    if( table[ row - 1 ][ column ] > table[ row ][ column + 1 ] )
    {
       
        cout << "do gory: [" << row - 1 << "]" << "[" << column << "]" << "=" << table[ row - 1 ][ column ] << " " << endl;
        row--;
       
       
       
    }
    else
    {
        cout << "w prawo: [" << row << "]" << "[" << column + 1 << "]" << "=" << table[ row ][ column + 1 ] << " " << endl;
        column++;
       
    }
P-173779
pekfos
» 2019-01-29 00:00:12
Potencjalnie przekraczasz zakres tablicy.
P-173780
« 1 » 2
  Strona 1 z 2 Następna strona