Ciao, guarda ho dato un'occhiata al tuo esercizio...mi è parso corretto apparte qualche piccolo dettaglio tipo:
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:printf("Quanto deve essere lungo l'array?\n"); scanf("%d",&l); int A[l];
Inoltre un altro errore è nel cilcio for dove calcoli la media e il minimo la condizione di terminazione non la capisco: l>k+l??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");
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; }

Rispondi quotando