Ciao, guarda ho dato un'occhiata al tuo esercizio...mi è parso corretto apparte qualche piccolo dettaglio tipo:
codice:
printf("Quanto deve essere lungo l'array?\n");
    scanf("%d",&l);
    int A[l];
in genere non si fa una cosa simile ma si usa la allocazione dinamica, ma magari non l'hai ancora studiata, quindi...fa niente...cmq per tua conoscenza si farebbe:
codice:
int *A;
printf("Quanto deve essere lungo l'array?\n");
    scanf("%d",&l);
A = (int*)malloc(l*sizeof(int));
if ( A == null ) printf ("Allocazione non riuscita\n");
Inoltre un altro errore è nel cilcio for dove calcoli la media e il minimo la condizione di terminazione non la capisco: l>k+l??
comunque ho provato ad apportare qualche semplice modifica...prova a vedere se funziona e fammi sapere! ciao

codice:
#include <stdio.h>
void leggi(int A[],int l);
int media(int A[],int n,int k);
int minimo(int A[],int n,int k);
int main()
{
    int l,n,k,b,m,minim;
    printf("Quanto deve essere lungo l'array?\n");
    scanf("%d",&l);
    int A[l];
    do
    {
          printf("Inserire n\n");
          scanf("%d",&n);
    }while(l%n!=0||l<=n);
    leggi(A,l);
    for (k=0;k<l;k=k+n)
    {
        m=media(A,n,k);
        minim=minimo(A,n,k);
        if (m==minim){
            printf ("Nella %d n-upla si ha TRUE\n", (k/n)+1);
            } else {
             printf ("Nella %d n-upla si ha FALSE\n", (k/n)+1);
        }
    }
    system ("pause");   
    return 0;
}
void leggi(int A[],int l)
{
     int i;
     for (i=0;i<l;i++)
     {
         printf("Inserisci il valore della cella [%d]:\n",i);
         scanf("%d",&A[i]);
     }
}
int media(int A[],int n,int k)
{ 
    int s=0,m=0,i=k,j;
    
    for(j=0;j<n;j++)
    {
          s=s+A[i];
          i++;
         // k++;
    }
m=s/n;
return m;
}
int minimo(int A[],int n,int k)
{
    int minim,j,i=k;
    minim=A[k];
    for(j=0;j<n;j++)
    {
          if (minim>A[i])
             minim=A[i];
    i++;
    }
return minim;
}