return (sym/s); - опять то же самое)) Результат-то будет типа double) Но средним значением чисел {1, 1, 2} будет 1.0
Проблема не в типе. Тип как раз верный. А вот результат вычислений косячный. У Вас будет целочисленное деление, а затем приведение к типу double. Тип правильный, а результат косячный.
Почему ругается, я тоже сказал.
max=0 и min=0.
Если у Вас нет отрицательных значений, то как раз и будут проблемы. У вас не встретится ни одного числа, которое бы удовлетворяло условию:
Код
if(a[i]<min)
{
imin=i;
min=a[i];
}
В итоге imin останется непроинициализированным. А Вы к нему таки обратитесь в конце.
Моё конструктивное предложение:
int imin=0, imax=0, min=a[0], max=a[0];
Я обычно делаю так.