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

[C++] Zamiana elementów tablicy - cyklicznie w lewo

Ostatnio zmodyfikowano 2019-10-28 22:19
Autor Wiadomość
Biedrzyk
Temat założony przez niniejszego użytkownika
[C++] Zamiana elementów tablicy - cyklicznie w lewo
» 2019-10-26 22:11:29
Witajcie,

mam kolejny problem - robię zadanie ze spoj-a PTROL - ROL o cyklicznym przesuwaniu elemntow tablicy w lewo - i jak na razie moje wypociny wyglądają tak:
C/C++
#include <iostream>

using namespace std;

int main()
{
    int proby[ 10 ];
    int pierwszy = proby[ 0 ];
    int x;
    cin >> x;
   
    for( int i = 0; i < x; i++ )
    {
       
        for( int i = 0; i < 10; i++ )
        {
            cin >> proby[ i ];
        }
        cout << endl;
       
        for( int i = 0; i < 10; i++ )
        {
            proby[ i ] = proby[ i + 1 ];
            proby[ 10 ] = pierwszy;
            cout << proby[ i ] << " ";
        }
    }
    return 0;
}

przesuwa mi wszystkie liczby w lewo ale jako ostatnia wskakuje jakaś randomowa, mimo tego, że ustaliłem, że ma być wstawiana proby[0] :/
P-175429
pekfos
» 2019-10-27 10:08:04
C/C++
int pierwszy = proby[ 0 ];
Jaki to ma sens, tam gdzie to jest?

Poza tym to jest SPOJ - masz tylko wypisać obróconą tablicę, a nie ją faktycznie obracać.
P-175433
Biedrzyk
Temat założony przez niniejszego użytkownika
» 2019-10-27 20:43:38
Proszę o wyrozumiałość - jestem początkujący ;)
w założeniu chodziło mi o to, żeby przypisać ostatniemu elementowi wartość pierwszego sprzed przesunięcia ale nie za bardzo mi to wyszło :/
P-175443
pekfos
» 2019-10-27 21:02:45
Linia którą zacytowałem jest w kompletnie złym miejscu, żeby miała sens. Czytasz z niezainicjalizowanej tablicy. Samo obracanie też jest źle, przekraczasz zakres tablicy.
P-175446
Biedrzyk
Temat założony przez niniejszego użytkownika
» 2019-10-27 23:26:26
C/C++
#include <iostream>

using namespace std;

int main()
{
    int proby[ 10 ];
    int x;
    cin >> x;
   
    for( int i = 0; i < x; i++ )
    {
       
        for( int i = 0; i < 10; i++ )
        {
            cin >> proby[ i ];
           
        }
        cout << endl;
       
        for( int i = 0; i < 10; i++ )
        {
            int pierwszy = proby[ 0 ];
            proby[ i ] = proby[ i + 1 ];
            proby[ 10 ] = pierwszy;
            cout << proby[ i ] << " ";
        }
    }
    return 0;
}

dlaczego przekraczam? przy warunku i < 10 nie wychodzę chyba poza tablicę (wiem, że od 0 liczymy pierwszy element)
P-175451
pekfos
» 2019-10-28 06:42:24
Więc wiesz, że indeks 10 jest niedozwolony. Masz podane wprost 10 i i + 1 też osiąga 10.
P-175452
Biedrzyk
Temat założony przez niniejszego użytkownika
» 2019-10-28 22:19:46
Ajjj widzisz głupi błąd, dzięki za podpowiedź! :D
P-175466
« 1 »
  Strona 1 z 1