Proposta di soluzione con controllo, tramite ciclo do-while, del valore inserito, se il valore inserito non è corretto lo si fa reinserire.
L'array viene definito con il numero N di elementi così come dichiarato dall'utente e non con un valore predefinito e fisso.
#include <stdio.h>
#include <stdlib.h>
int main(int argc, char** argv) {
// La riga seguente serve solo a chi usa il compilatore Cygwin.
setvbuf(stdout, 0, _IONBF, 0);
int n;
printf("quanti valori vuoi inserire ? ");
scanf("%d", &n);
printf("\n");
int a[n];
int i;
int somma=0;
for(i=0; i<n; i++){
if(i==0) {
printf("\nintrodurre valore %d-esimo ", i);
scanf("%d", &a[i]);
}
else {
do {
printf("\nintrodurre valore %d-esimo ", i);
scanf("%d", &a[i]);
}while(a[i]<a[i-1]);
}
somma = somma + a[i];
}
float media = somma / n;
int conta=0;
for(i=0; i<n; i++) {
if (a[i] > media) conta++;
}
printf("media=%f, conta=%d \n", media, conta);
return (EXIT_SUCCESS);
}