Witam, mam problem z takim zadaniem: Mam napisać funkcję, która dla tablicy liczb podanej jako parametr (wielkość tablicy także podana jest jako parametr) usunie wszystkie elementy maksymalne. Funkcja powinna zachowywać kolejność liczb.
Nie mam pojęcia, gdzie jest mój błąd w rozumowaniu , dlatego zwracam się do Was o pomoc. :)
Pozdrawiam
#include <iostream>
using namespace std;
void usuwanie_maksimow(int tab[], int *rozmiar)
{
int max = INT_MIN, licznik = 0;
for (int i = 0; i < *rozmiar; i++)
{
if (tab[i] > max) tab[i] = max;
}
for (int i = 0; i < *rozmiar-licznik; i++)
{
if (tab[i] == max)
{
for (int j = i; j < *rozmiar-1 - licznik; j++)
{
tab[j] = tab[j + 1];
}
licznik++;
i--;
}
}
*rozmiar -= licznik;
}
int main()
{
int t, n, *tab;
cin >> t;
for(int i = 0; i < t; i++)
{
cin >> n;
tab = (int*)malloc(n * sizeof(*tab));
for (int j = 0; j < n; j++)
{
cin >> tab[j];
}
usuwanie_maksimow(tab, &n);
cout << n;
for (int j = 0; j < n; j++)
{
cout << " " << tab[j];
}
free(tab);
}
return 0;
}