Есть много комментариев по 2 части.

Зачем записывать в файл n, а потом вводить его с клавы? Что-то уж одно)

fread(a,sizeof(int),1,f); - во-первых, надо сначала выделить память под указатель, а потом уж читать в него.
во-вторых, зачем читать в массив double? Формально ничего криминального, там тип входного параметра void*, но логики не вижу.
Тут уж Вы должны n прочитать.

a-new double[n]; - очепяточка?

sym=sym+a[i]; - вообще ужас))) Куда дробные части денутся?) К целому прибавлять double'ы, это надо же.

if(a[i]>(sym/s)) - а Вы в курсе, что sym / s -это целочисленное деление? Если делить одно целое на другое, то получится опять же целое. Например 10/3 = 3
А сравниваете Вы с double, так что ошибки вполне могут иметь место)

Последние две ошибки убиваются одним выстрелом: объявлением sym как double.

b-new double[s]; - и вновь очепяточка. Да, кстати, и почему именно s? Их там всегда будет меньше.

if (t=-1) cout<<"Net takix 4isel!"; - целых два косяка. Во-первых, (t==-1), во-вторых, если уж t и принимает такое значение, то цикл не прогонится не разу. Так что следует сделать if, а уж внутри if цикл.

Остальное дело вкуса. Хотя мне лично непонятно, почему в одном случае потоки cin и cout, а в другом fopen, fread, fwrite - либо STL, либо C Library)