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;
}