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 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 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. |
|
pekfos |
» 2019-01-28 22:58:05 Nie modyfikujesz zmiennych row i column. |
|
robertos18 Temat założony przez niniejszego użytkownika |
» 2019-01-28 23:07:51 czyli musze stworzyć kolejna tablice ? |
|
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. |
|
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 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 ]
|
|
pekfos |
» 2019-01-28 23:33:58 Masz modyfikować te zmienne, więc zwykłe przypisywanie im stałych nie pomaga. cout << "w prawo: [" << row << "]" << "[" << column + 1 << "]" << "=" << table[ column + 1 ][ row ] << " ";
|
Zdajesz sobie sprawę, że w tym miejscu źle wypisujesz wartość z tablicy? |
|
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 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++; } |
|
pekfos |
» 2019-01-29 00:00:12 Potencjalnie przekraczasz zakres tablicy. |
|
« 1 » 2 |