Wątek przeniesiony 2018-01-16 13:28 z C/C++ przez kq.

pomoc ze zrozumieniem tablic

0

Witam,
Chciałem napisać taki program, który wypełnij tablice 16 elementowa największymi kolejnymi liczbami podzielnymi przez 5 i mniejszymi od 123 posortuje ją (sortowanie bąbelkowe) i wypisze ile jest elementów w tablicy.

#include <iostream>

using namespace std;

int main()
{
    int const rozmiar = 16;
    int tab[rozmiar];
    int licznik = 0;

    for(int i = 122; i > 0; i--)
    {
        if(i%5 == 0)
        {
            tab[i] = i;
            cout << tab[i] << " ";
            ++licznik;
        }
        licznik;
    }
    cout << endl;
    cout << "Ilość elemntów w tablicy: " << licznik << endl;
    cout << endl;
    for(int i = 0; i < licznik; i++)
    {
            for(int j = 0; j < licznik; j++)
            {
                if(tab[j] > tab[j + 1])
                {
                    int tmp = tab[j];
                    tab[j] = tab[j + 1];
                    tab[j + 1] = tmp;
                }
            }
    }

    for( int i = 0; i < rozmiar; i++)
    {
        cout << tab[i] << " ";
    }

    return 0;


}

1

Wyjeżdżasz poza zakres tablicy. W Twoim przypadku tablica powinna mieć odrębną zmienną przechowującą indeks i nawet ją masz, tylko nie użyłeś.

for(int i = 122; i > 0; i--)
{
    if(i%5 == 0)
    {
        tab[i] = i;
        cout << tab[i] << " ";
        ++licznik;
    }
    licznik;
}

Tablica ma wielkość 16 elementów, czyli możemy odnieść się do elementów od 0 do 15. Ty zaczynasz od elementu 120, którego w tablicy nie ma.

for(int i = 122; i > 0; i--)
{
    if(i%5 == 0)
    {
        tab[licznik] = i;
        cout << tab[licznik] << " ";
        ++licznik;
        if (licznik >= rozmiar) {
            break;
        }
    }
}

Reszty nie chce mi się sprawdzać :D

Sortowanie dla tego zadania jest bez sensu, bo jeśli chcemy kolejność rosnącą, to możemy zamiast zwiększać wartość licznika, zmniejszać ją począwszy od indeksu ostatniego elementu tablicy.
Albo zamiast sortowania odwrócić kolejność elementów w tablicy.

1 użytkowników online, w tym zalogowanych: 0, gości: 1