Sortowanie przez wybór co jest źle

0

Witam, mój problem polega na tym że myli zazwyczaj 2 liczby. Wydaje mi się że program powinien działać lecz jest zapewne gdzieś jakiś mały błąd. Proszę o pomoc w odnalezieniu go. Dziękuję!

#include <iostream>
#include <algorithm>

using namespace std;

int main()
{
    int ile, lmin, j;      //ilość liczb || i do pętli  ||  zamienna do podmiany
    cin>>ile;

    int liczba[ile-1];    //tabela liczb

    for (int i=0; i<ile; i++)    //uzupełnianie tabelki lizbami do sortu
    {
        cin>>liczba[i];
    }

    for (int a=0; a<ile; a++)
    {
        lmin=a;
        for (j=a+1; j<ile; j++)
        {
            if (liczba[lmin]>liczba[j])
            {
                lmin=j;
            }
            swap(liczba[lmin],liczba[a]);
        }
    }

    for (int p=0; p<ile; p++)
    {
        cout<<liczba[p]<<" ";
    }

    return 0;
}
 
0

Masz o 1 indeks w tablicy za mało. Dalej nie czytałem. Jak robisz int tablica[n] to tablica ma n elementów czyli indeksy od 0 do n-1

0

Jeśli dobrze zrozumiałem usunąłem już to "-1" z definiowania tablicy. Lecz program wykonuje ten sam błąd.

1
szaszlik napisał(a):

Lecz program wykonuje ten sam błąd.

Polecam lekturę: Dlaczego nikt nie odpowiada w moim wątku?

0

Bo dalej masz blad, przeczytaj ze zrozumieniem:

Masz o 1 indeks w tablicy za mało. Jak robisz int** tablica[n]** to tablica ma n elementów czyli indeksy od 0 do n-1
To do jakiego ostatniego indeksu mozesz sie odwolac ?

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