Twój warunek w while nie działa. Gdy skończą sie liczby scanf zwraca EOF - ujemna liczba która jako bool daje true - pętla jest nieskończona. Popraw na:
while(scanf("%d",&liczba) != EOF)
albo korzystając z faktu, że scanf zwraca liczbe wczytanych danych:
while(scanf("%d",&liczba) == 1)
Dodatkowo gdy już wiesz, że skończyłeś to po co wczytujesz kolejne liczby:
while(scanf("%d",&liczba) != EOF && ilosc < 3)
lub break w ifie:
if(ilosc>2)
break;
printf("%d \n", liczba);