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

Odwracanie tablicy.

Ostatnio zmodyfikowano 2016-12-04 19:05
Autor Wiadomość
Ketanol13
Temat założony przez niniejszego użytkownika
Odwracanie tablicy.
» 2016-12-04 18:31:33
Witam, napisałem krótki program odwracający tablicę i zapisujący jej odwrotność w samej Sobie lecz wynik jest błędny.
Zależy mi na nie używaniu reverse.
Proszę o sugestię w celu rozwikłania problemu.

C/C++
#include <iostream>

using namespace std;
int tab[ 4 ] = { 1, 2, 3, 4 };
int main()
{
    for( int i = 3; i >= 0; i-- )
    {
        tab[ 3 - i ] = tab[ i ];
    }
    for( int i = 0; i < 4; i++ )
    {
        cout << tab[ i ];
    }
    return 0;
}
P-154488
mokrowski
» 2016-12-04 18:53:50
Odpowiedz sobie na pytania:
1. Jaki jest ostatni indeks tablicy?
2. Gdzie jest środek tablicy? (podpowiem wynik działania "dzielenie całokowitoliczbowe")
3. Czy kopiować całość tablicy czy jedynie zamieniać miejscami elementy? (podpowiem indeks 1 elementu to: początek + i, indeks 2 elementu to: koniec - i)

Po prostu nie zamieniaj elementów całej tablicy a jedynie "do środka" :-)
P-154490
Gibas11
» 2016-12-04 18:56:58
@up
Problem głównie w tym, że on nawet nie zamieniał elementów.

@op
Zamień po prostu kolejne pary liczb idąc od końców tablicy.
C/C++
for( auto i = 0u; i < 2; ++i )
     std::swap( tab[ i ], tab[ 4 - 1 - i ] );

P-154491
Ketanol13
Temat założony przez niniejszego użytkownika
» 2016-12-04 19:05:42
Dzięki za odpowiedź, pozdrawiam :)
Temat zamykam.
P-154493
« 1 »
  Strona 1 z 1