Problem leży w linii:
if (roznica <= 0.5)
{
cout << tab[q] << endl;
++n;
}
Ponieważ zakładasz w niej że liczna najbliżej średniej będzie od niej w odległości max 0.5, a przy wpisanu np. 4 liczb
1 3 5 7
masz średnią równą 4 i najbliżej jest 3 a różnica jest równa 1 więc twój program nic nie pokaże, tak samo
2 100 1000 10000
średnia równa 2775,5 a najbliższy element to 1000 sporo odległy