Bonjour à tous;
je desire calculer la valeur mediane d'un vecteur (ou d'un tableau). Alors j'ai écrit le code suivant:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
 
void CalculMediane(float *tab, int nb_ech, float *mediane, float *max, float *min)
 
{	
   *mediane=0.0;
    *max=0.0;
    *min=0.0;
	int i,per=1;
	float tmp;
	while (per == 1)
	{
		per = 0;
		for (i=0; i<nb_ech; i++)
		{
			if (tab[i] > tab[i+1])
			{
				tmp = tab[i];
				tab[i] = tab[i+1];
				tab[i+1] = tmp;
				per = 1;
			}
		}
	}
 
	*min = tab[0];
	*max = tab[nb_ech-1];
	*mediane = (tab[nb_ech/2 -1] + tab[nb_ech/2])/2;
	//Attention : cas d'un tableau contenant n = 2*k echantillons;
 
}
Ce code me permet de calculer la valeur mediane d'un tableau. Mon problème est que je manipule des données et j'ai besoin de supprimer certaines valeurs comme ce qui suit:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
 
 vector<double> tabs0;
 for (int j=0;j<257;j++)
		 {
			 if(lignebase[j]!=0)
			 {
				 tabs0.push_back(lignebase[j]);
 
			 }
		 }
Je voudrais calculer la valeur mediane de mon nouveau vecteur comme suit:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
 
 float  mediane, M, m;
CalculMediane(tabs0,tabs0.size(),&mediane,&M,&m);
A la compilation, j'obtiens une erreur "no matching function for call to CalculMediane(......)";

Merci pour votre aide;