Witam mam zrobić zadanie
Dana jest tablica liczb całkowitych (tablicaIn) o rozmiarze n. Napisać funkcję, która znajdzie
liczbę (oznaczmy ją x) występującą w tablicy najwięcej razy – jeżeli istnieje wiele takich liczb to
funkcja ma wybrać największą z nich. Następnie funkcja ma do tablicy wynikowej (tablicaOut)
zapisać elementy w taki sposób, by liczby mniejsze od x (grupa I) znalazły się w niej przed
liczbami większymi lub równymi x (grupa II), ale bez zmiany względnej kolejności liczb w
ramach danej grupy. Argumentami funkcji mają być tablicaIn oraz n, a wartością zwracaną
tablicaOut. Przykład:
tablicaIn: 4, 5, 7, 1, 5, 9, 4, 5, 3, 4 (n=10)
tablicaOut: 4, 1, 4, 3, 4, 5, 7, 5, 9, 5 (x=5)
Znalazłem " x " ,ale nie wiem jak pogrupować względnie
#include <stdio.h>
#include <stdlib.h>
int F(int tab[],int n)
{
int i,liczba,index;
int min=tab[0],max=tab[0];
for(i=0;i<n;i++){ //znajdowanie najmniejszej i najwiekszej wartosci elementu tablicy
if(min>tab[i])
min=tab[i];
if(max<tab[i])
max=tab[i];
}
int rozmiar=max+1;
int tmp[rozmiar];
for(i=0;i<=max;i++){ //ustawianie wszyskich wartosci na jeden mniejsza niz min
tmp[i]=min-1;
}
for(i=0;i<n;i++){ //zliczanie
liczba=tab[i];
++tmp[liczba];
}
max=0;
for(i=0;i<rozmiar;i++){ //sprawdzenie który z elementów jest najwiecej i ile razy jest w tablicy
if(max<=tmp[i])
{
max=tmp[i];
index=i;
}
}
return index;
}
int main()
{
int n=10,x;
int tab[10]={ 4, 5, 7, 1, 5, 9, 4, 5, 3, 4}; //przykładowe liczby
x=F(tab,n);
printf("x=%d",x);
return 0;
}