Guarda, prova questo.

Studiai questo algoritmo diversi mesi fa e ora l'ho implementato di nuovo prendendolo da certi appunti... ho fatto diverse prove e dovrebbe funzionare.

In sostanza, anziché considerare singolarmente gli elementi dell'array, li considera a coppie, e nel complesso esegue 3n/2 confronti, questo perché il ciclo for ha uno step pari a 2, non 1, quindi se n è il numero delle componenti le iterazioni sono n/2 e, per ognuna di queste, vengono eseguiti 3 confronti, né più né meno. Quindi n/2 iterazioni con 3 confronti... T(n) = 3n/2, mentre invece con quello che proponevi tu facevi due confronti per ogni componente dell'array tranne la prima, quindi 2n - 2.

(Edit: comunque per quanto riguarda il codice del post precedente non so se va bene ma comunque l'errore è che l'ultima parentesi graffa chiude il for, non il main, quindi ne devi aggiungere un'altra)

codice:
#include <stdio.h>
#include <stdlib.h>
#include <time.h>

short i;

void calcolo_min_max_media(int *x, short n, int *min, int *max, int *media) {
    
    *min = *max = *media = x[0];

    for (i=1; i<n-1; i+=2) {

       if ( x[i] > x[i+1] ) {
          if ( x[i] > *max )
             *max = x[i];
          if ( x[i+1] < *min )
             *min = x[i+1];
       }
       else {
          if ( x[i] < *min )
             *min = x[i];
          if ( x[i+1] > *max )
             *max = x[i+1];
       }
       
       *media += x[i] + x[i+1];
    }
    
    *media /= n;
}

int main(void) {
    
    int *array, min, max, media;
    short n;

    printf("Immettere il numero delle componenti dell'array: ");
    scanf("%hd%*c", &n);

    array = (int *)malloc( n*sizeof(int) );

    srand( (unsigned int)time(NULL) );

    printf("\nGenerazione e visualizzazione degli elementi dell'array:\n\n");
    for (i=0; i<n; i++) {
       array[i] = rand();
       printf("%-6d", array[i]);
    }

    puts("\n");

    calcolo_min_max_media (array, n, &min, &max, &media);

    printf("Il minimo elemento dell'array e': %d\n"
           "Il massimo elemento dell'array e': %d\n"
           "La media degli elementi dell'array e': %d\n", min, max, media);

    getchar();
    return 0;
}