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]<<" ";
}
}