Sono uno studente di programmazione e per un progetto su cui sto lavorando, le cose che devo fare è calcolare il valore mediano di un vettore di valori int. Devo farlo utilizzando solo la funzione di ordinamento da STL e funzioni membro vettoriali come , .end()
e .size()
.Calcolo mediano dei valori memorizzati in Vector - C++?
Inoltre, dovrei assicurarmi di trovare la mediana se il vettore ha un numero dispari di valori o un numero pari di valori.
E io sono bloccato, di seguito ho incluso il mio tentativo. Quindi dove sto andando male? Apprezzerei se saresti disposto a darmi alcuni suggerimenti o risorse per andare nella giusta direzione.
Codice:
int CalcMHWScore(const vector<int>& hWScores)
{
const int DIVISOR = 2;
double median;
sort(hWScores.begin(), hWScores.end());
if ((hWScores.size() % DIVISOR) == 0)
{
median = ((hWScores.begin() + hWScores.size()) + (hWScores.begin() + (hWScores.size() + 1)))/DIVISOR);
}
else
{
median = ((hWScores.begin() + hWScores.size())/DIVISOR)
}
return median;
}
Grazie !!
tag con "compiti a casa" per favore. –
Non sono sicuro che l'uso di una costante denominata per "2" sia appropriato qui. –
@Max - Grazie per la cattura, l'ho taggato. – Alex