/*Esercizio esame fondamenti 1 consorzio nettuno 7 aprile 2001 Marco Temperini*/
#include <stdio.h>
#define N 7
/*restituisce come risultato la media dei valori di arr;
inoltre, nella locazione puntata da diff mette la differenza tra
i valori massimo e minimo dell'array*/
float media( int
arr[], int * diff)
{
int i, som, max, min; /* usa som per calcolare la somma delle componenti
di arr; max e min sono usati per contenere il massimo e minimo parziale durante la scansione
(e alla fine il massimo e il minimo in arr) */
som=max=min=arr[0]; /* inizializzazione */
for (i=1; i<N; i++) /* si scandisce l'array...*/
{
som+=arr[i]; /* ...accumulando le componenti in som, */
if (max<arr[i]) max=arr[i]; /* mantenendo aggiornato il massimo parziale,*/
if (min>arr[i]) min=arr[i]; /* e il minimo parziale */
}
/* al termine del ciclo, in min c'e' il minimo, in max, il massimo e in som
la somma delle componenti di arr */
*diff = max-min; /* assegnazione argomento con la differenza */
return (( float )som/N); /* restituzione risultato (media) e terminazione */
} /*fine media*/
int main()
{
int a[N]={32, 24, 56, 29, 25, 38, 33}, differenza, i;
char car;
printf("\ninizio programma\n");
printf("componenti dell'array:\n");
for (i=0;i<N;i++) printf("%d, ",a[i]);
printf("\n-----------------------------------------\n");
printf("media dei valori: %f\n", media(a,&differenza));
printf("-----------------------------------------\n");
printf("la differenza tra il massimo e il minimo e' %d;\n", differenza);
printf("i valori superiori alla differenza sono:\n");
for (i=0;i<N;i++) if (a[i]>differenza) printf("%d ",a[i]);
scanf("\n%c",&car);
return 0;
}
return to programmi