// входящий массив
int Inp_ar[] = {10, 7, 0, 13, 1, 24, 17, 19, 44, 3};
void setup() {
  // put your setup code here, to run once:
  Serial.begin(9600);  
}

// Первый скетч, где ардуино почти ни при чем :-)

void loop() {
  // put your main code here, to run repeatedly:
  // Посчитаем число элементов массива - размер массива на размер
  // одного элемента
  int A = sizeof(Inp_ar);
  int B = sizeof(Inp_ar[0]);
  int Num = A/B; 
  // Распечатаем массив
  for (int i=0; i<Num ; i++)
  {
    Serial.print(String(Inp_ar[i])+" ");
  }
  // Просто перевод строки
  Serial.println("");  
  // Распечатаем минимальный элемент
  Serial.println(String(FMin(Inp_ar,Num)));
  //Также максимальный элемент
  Serial.println(String(FMax(Inp_ar,Num)));
  // Ну и среднее арифметическое
  Serial.println(String(FAvg(Inp_ar,Num)));
  // Пробел во времени, чтобы не завалить экран результатами
  delay(5000);
}
// Функции!!
// Плохо внутри функции считаются размеры переданного массива
// поэтому передадим вторым аргументом
int FMin (int Argum[], int Number)
{
  // Первый элемент - в сравнение (для начала с самим собой)
  // в цикле
  int Result = Argum[0];  
  for (int i=0; i < Number; i++)
  {
    if (Result > Argum[i] )
    {
      Result = Argum[i];
    }
  }
  // Отдадим результат наверх (ну или вбок, как придется )) )
  return Result;
}
// Максимальное ловим аналогично минимальному
int FMax (int Argum[], int Number)
{
  int Result = Argum[0];  
  for (int i=0; i < Number; i++)
  {
    if (Result < Argum[i] )
    {
      Result = Argum[i];
    }
  }
  return Result;
}
// Среднее арифметическое
float FAvg (int Argum[], int Number)
{
  // Засуммируем массив (хорошо бы в int уложиться ))) )
  int Sum = 0;  
  for (int i=0; i < Number; i++)
  {
    Sum += Argum[i];
  }  
  // Приходится всех к флоату привести, иначе делится нацело почему то
  float Result = (float)Sum/(float)Number;
  // Ну и результат обратно
  return Result;
}