/*
** 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(1);
}