• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Dlaczego ostatni element w tablicy się zeruje?

0 głosów
277 wizyt
pytanie zadane 25 lipca 2019 w C i C++ przez magda_19 Gaduła (3,080 p.)

Próbuję przesunąć elementy w tablicy o 1 w prawo, czyli np. dla 2 10 1, powinno być wyświetlone 10 1 2. Mój kod wyświetla przesunięte wartości, ale pierwszą liczbę zeruje. Ktoś wie dlaczego? Jak to naprawić?

#include <iostream>
#include <cstdlib>

using namespace std;

int main()
{
    int liczbaTestow, rozmiar = 0, przesuniecie;

    cin >> liczbaTestow;
    while (liczbaTestow--)
    {
        cin >> rozmiar;
        int *w_liczby = new int [rozmiar];
       int *w_odwrocone_liczby = new int [rozmiar];

        for (int i = 0; i < rozmiar; i++)
        {
            cin >> w_liczby[i];
        }
        for (int i = 0; i < rozmiar; i++)
        {
            cout << w_liczby[i+1] << " ";
        }

        delete [] w_liczby;
        delete [] w_odwrocone_liczby;
    }
    return 0;
}

 

1 odpowiedź

0 głosów
odpowiedź 25 lipca 2019 przez Patrycjerz Mędrzec (192,320 p.)
edycja 25 lipca 2019 przez Patrycjerz

Ten kod jest błędnie napisany. Po pierwsze, wychodzisz poza tablicę `w_liczby`, po drugie, jak dojdziesz do końcowego elementu, powinnaś wyzerować indeks (nie chodzi o `i`, ale o inną zmienną, `i` nadal by tylko liczył obiegi pętli, nie będąc indeksem).

int indeks = przesuniecie;        
for (int i = 0; i < rozmiar; i++)
{
    cout << w_liczby[indeks++] << " ";
    if (indeks == rozmiar)
        indeks = 0;
}

Podobne pytania

0 głosów
2 odpowiedzi 255 wizyt
pytanie zadane 7 kwietnia 2020 w C# przez Curiosis Użytkownik (540 p.)
0 głosów
3 odpowiedzi 609 wizyt
pytanie zadane 18 maja 2016 w C i C++ przez zuzka_kotek Początkujący (290 p.)
0 głosów
1 odpowiedź 269 wizyt
pytanie zadane 2 marca 2019 w JavaScript przez piotruchk Nowicjusz (170 p.)

93,743 zapytań

142,682 odpowiedzi

323,299 komentarzy

63,330 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj

Twierdza Linux. Bezpieczeństwo dla dociekliwych

Aby uzyskać rabat -10%, użyjcie kodu pasja-linux, wpisując go w specjalne pole w koszyku.

...