#include #include int main(void) { double sum=0,v;//сумма и введенное значение int arr_size=0, arr_u=0;//размер массива и текущая позиция double *arr = NULL;//память под динамический массив arr_size = 16;//задаем начальный размер if (!(arr = (double*) malloc(arr_size * sizeof(arr[0]))))//выделяем память NULL goto out_of_mem;//не смогли выделить память while (scanf("%lf", &v) == 1)//пока приходят данные { if (arr_u == arr_size)//если достигли конца массива { arr_size *= 2;//увеличиваем размер в двое и выделяем память if (!(arr = (double*) realloc(arr, arr_size * sizeof(arr[0])))) goto out_of_mem;//не смогли выделить память } sum += v;//находим сумму arr[arr_u] = v;//сохраняем значение в текущую позицию arr_u++;//сдвигаем текущую позицию в массиве } if (!arr_u)//не было введено ни одного значения return 0; double average = sum/arr_u;//находим среднее значение printf("%lf\n", average); for(int i=0; i < arr_u; i++) if(arr[i] <= average)//лучше сравнивать с определенной точностью printf("%lf\n", arr[i]);//печатаем числа, не превышающие среднее free(arr);//освобождаем память return 0;//выходим с хорошим кодом завершения out_of_mem: fprintf(stderr, "Can't allocate memory\n"); return 1;//выходим с аварийным кодом завершения }