Problem z pętlą

0

Witam, napisałem program który dla n elementowej tablicy wyświetla na ekranie m ostatnich najwiekszych elementów tablicy(mogą być sobie równe). Jednak po wprowadzeniu danych np.
n=4
m=2
tab = 1 2 3 4
Program wyświetla: 16 4 3, czyli 4 i 3 jest poprawnie ale 16 nie wiadomo skąd się bierze.
Prosiłbym o pomoc w rozwiązaniu problemu.

#include <iostream>
#include<algorithm>
using namespace std;
int n, m;
int main()
{
cin>>n>>m;
int tab[n];
for(int i=0; i<n; i++)
{
cin>>tab[i];
}
sort(tab, tab+n);

for(int p=n; p>=(n-m); p--)
{
    cout<<tab[p]<<" ";


}

}

1

wychodzisz poza indeks tablicy w pętli wypisującej dane.

0
Sunnydev napisał(a):

wychodzisz poza indeks tablicy w pętli wypisującej dane

Ok dziękuje
Problem został już rozwiązany.

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.