Masz trochę niezręczności.
1. Zasiew generatora wykonujesz podając mu unsigned int. Jeśli Twoją intencją jest inicjowanie czasem, to warto w time(...) podać NULL.
2. Jeśli chcesz wyzerować tablicę w C, to wystarczy:
float table[100] = { 0 };
W C to załatwia sprawę zerowania (ale taki zapis nie działa w C++).
3. Jeśli chcesz wyzerować tablicę już gdzieś w programie, możesz to zrobić z użyciem pętli niejako "ręcznie", lub z użyciem memset(...):
#include <stdio.h>
#include <string.h>
int main(void) {
int tab[10000]; /* tu teraz są "śmiecie" */
memset(tab, 0, sizeof(tab)); /* teraz następuje wypełnianie 0 */
printf("%d\n", tab[9999]); /* Próba wyświetlenia ostatniej wartości z tablicy */
return 0;
}
4. Jedną z prawidłowych definicji main(), jest:
int main(void) { //...
W C jeśli nie podasz ilości argumentów, to funkcja potrafi przyjąć ich nieokreśloną liczbę. Stąd w C zawsze przy pustej liście argumentów, podaje się void.
4. Jeśli wylosowane liczby mają być umieszczone rosnąco, nie masz wyjścia i powinieneś je posortować. Dla 3 elementów wystarczy zestaw warunków i prosty kod. Pytanie tylko czy wylosowane wartości mają być powtarzalne czy nie?
5. Jeśli tablic nie alokujesz na stercie (malloc(...) i "przyjaciele"), to alokowane na stosie, zwalniane są po wyjściu z zakresu (czyli bloku kodu). Nie trzeba więc ich zwalniać.