Gli esercizi
Testi e soluzioni di alcuni esercizi
Prodotto di quaterne
Generare in modo casuale un array di numeri interi minori di 200. Stampare in output le quaterne consecutive il cui prodotto sia minore della media di tutti gli elementi del vettore.
/* ** quaterne.c ** ** Generare in modo casuale un array di numeri interi minori ** di 200. Stampare in output le quaterne consecutive il cui ** prodotto sia minore della media di tutti gli elementi del ** vettore. ** ** Marco Liverani (liverani@mat.uniroma3.it) - Marzo 2001 */ #include <stdlib.h> #include <stdio.h> #include <time.h> #define MAX 100 /* * generazione casuale di un array */ int genera_array(int x[]) { int n, i; printf("Numero di elementi: "); scanf("%d", &n); srand((unsigned)time(NULL)); for (i=0; i<n; i++) { x[i] = rand()%200; } return(n); } /* * restituisce la media aritmetica dei valori del vettore */ float media_array(int x[], int n) { int i; float m = 0.0; for (i=0; i<n; i++) { m = m + x[i]; } m = m/(float)n; return(m); } /* * funzione per la stampa di p elementi del vettore * partendo da quello con indice k. */ void stampa(int x[], int k, int p) { int i; for (i=k; i<k+p; i++) printf("%d ", x[i]); printf("\n"); return; } /* * funzione principale (main) */ int main(void) { int i, n, v[MAX]; float m; n = genera_array(v); stampa(v, 0, n); m = media_array(v, n); for (i=0; i<=n-4; i++) { if (v[i]*v[i+1]*v[i+2]*v[i+3] < m) stampa(v, i, 4); } return(0); }