Media in lista di interi di un array

di il
3 risposte

Media in lista di interi di un array

Il programma vuole calcolare il massimo, minimo e media di una serie di interi inseriti a tastiera. Il massimo e il minimo me lo calcola, ma la media non la riesco a fare. Mi spiegate qual'è il problema?
#include <iostream>
using namespace std;
int main () {
		const int dim = 10;
		int B[dim];
		int n = 0;

		for (int i=0; i < dim; i++) {
						cout << " Inserisci gli interi: " << i << ": ";
						cin >> B[i];
					    }
		int valore_min = 10^6;
			for (int i = 0; i < dim; i++) 
				if (B[i]  < valore_min)
					valore_min = B[i];
			cout << "Il valore minimo e': " << valore_min << endl;

		int valore_max = -10^6;
			for (int i = 0; i < dim; i++)
				if (B[i] > valore_max)
					valore_max = B[i];
			cout << "Il valore massimo e': " << valore_max << endl;

		float media = 0;					//Aggiustare media
		for (int i = 0; i < dim; ++i) {
			media = media + B[i];
					      }
			media = media/n;
				cout << "La media e': " << media << endl;
 return 0;
}

3 Risposte

  • Re: Media in lista di interi di un array

    L'errore è lampante: quanto vale n?
    Consiglio: se le cose non funzionano prova a capirle, per esempio in questo caso prova ad aggiungere un po' di stampe a video (cout).
    Inoltre per determinare min e max, invece di scomodare una potenza per l'inizializzazione, più semplicemente puoi inizializzare con il valore contenuto nel primo elemento dell'array B[0].
  • Re: Media in lista di interi di un array

    Quindi invece di fare la potenza faccio int B[0]?
  • Re: Media in lista di interi di un array

    davide9797 ha scritto:


    quindi invece di fare la potenza faccio int B[0]?
    Esattamente min = B[0] e fai partire il ciclo dall'elemento con indice 1 visto che lo 0 già lo hai utilizzato.

    Per la media come ti è stato detto l'errore è n. Forse nel primo ciclo quando inserisci i numeri ti sei dimenticato un n++.
Devi accedere o registrarti per scrivere nel forum
3 risposte