Corso di Informatica Generale - Primo modulo IN1

Testi e soluzioni di esercizi

 

Prodotto di quaterne

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

Per informazioni e commenti: liverani@mat.uniroma3.it - Torna alla Home page - Ultima modifica: 18 Marzo 2001