PDA

View Full Version : [C++]Programma che calcola il valore più vicino alla media


Destruction
05-04-2008, 16:26
Questo è il programma che dovrei fare: "Dato un vettore di interi, calcolare il valore più vicino alla media".


Sono riuscito solo a calcolare la media degli elementi del vettore ma non riesco a capire come trovare il valore più vicino alla media.

#include <cstdlib>
#include <iostream>

using namespace std;


int main()
{
int n;
cout<<"Quanti numeri inserire all'interno del vettore ? ";
cin>>n;
int vet[n];
for(int i=0; i<n; i++)
{cout<<"["<<i<<"]=";
cin>>vet[i];}
for(int i=0; i<n; i++)
cout<<vet[i]<<endl;

int s;
s=0;
for(int i=0; i<n; i++)
s+=vet[i];
double media=s/(double)n;
cout<<"La media del vettore e': "<<media<<"\t";
cout<<endl;


system("PAUSE");
return(EXIT_SUCCESS);


}

wizard1993
05-04-2008, 16:45
cosa vuol dire calcolore il valore più vicino alla media?
semmai cercare

Destruction
05-04-2008, 16:53
si scusa, volevo dire trovare.

wizard1993
05-04-2008, 17:24
scritto così su due piedi

#include <iostream>

using namespace std;

int main()
{
const int index=8;
int value[index]={1,2,3,4,5,6,7,8};

int media=0;
for(int i=0;i<index;i++){
media+=value[i];
}
media=media/index;
int result[index];
for(int i=0;i<index;i++){
result[i]=abs(value[i]-media);
}
int min=index;
for(int i=0;i<index;i++){
if(result[i]<result[min]){
min=i;
}
}
cout<<"la media è"<<media<<endl;
cout<<"il valore piu' vicino alla media e' "<<value[min];

}

Destruction
05-04-2008, 17:53
E se vorrei inserire i valori del vettore da tastiera al posto di metterli predefiniti?

A cosa serve "abs"?

khelidan1980
05-04-2008, 18:20
E se vorrei inserire i valori del vettore da tastiera al posto di metterli predefiniti?

A cosa serve "abs"?

ritorna il valore assoluto

wizard1993
05-04-2008, 18:21
1)E se vorrei inserire i valori del vettore da tastiera al posto di metterli predefiniti?

2)A cosa serve "abs"?

1)semplicemente chiedi all'utente di inserirli come hai fatto te, ma non si può fare questo

cin>>n;
int vet[n];
in quanto l'allocazione della memoria è statica, e quendi non è possibile fare una cosa del genere in questo modo, per fare così dovresti sfruttare i puntatori.

2)estrae il valore assoluto