Fonction inline : vec[3] que je ne comprend pas
Impossible de comprendre mon résultat présent et du livre qui donne ce code...
Code:
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 31 32 33
|
#include <cmath>
#include <iostream>
using namespace std;
inline double norme (double vec[3]);
int main()
{
double v1[3], v2[3];
int i;
for (i = 0; i < 3; i++)
{
v1[i] = i; // 0.1.2.3
v2[i] = 2*i-1; // 2*0-1. 2*1-1. 2*2-1. 2*3-1. //1 . 1 . 3 .5
}
cout <<"V1 : " << norme(v1) <<endl;
cout <<"V2 : " << norme(v2) <<endl;
}
inline double norme (double vec[3])
{
int i;
double s = 0;
for (i = 0; i < 3; i ++)
{
s+= vec[i] * vec[i]; //
return sqrt(s); //racine carée de "s"
}
} |
Aide moi Svp car je ne comprends pas du tout cette fonction, et mon livre ne me donne pas la même réponse que mon compilateur ... ici la résultat est V1 = 0 et V2 = 1 ... dans mon livre c'est V1 = 2.23607 et V2 = 3.31662.
Y aurait t'il un problème de traduction dans mon livre ?
Les commentaires c'est moi qui les ait ajouté pour comprendre les étapes de ma fonction vu que je débute ...
Merci d'avance pou vos réponse.
Aigle-Royal
Réponse à Koala et Foetus
Ok merci à vous deux.
Foetus Je ne vois pas ou est mon erreur dans les commentaires de la ligne 17 et 18 ... en effet pour le return j'ai compris mais vu que j'ai recopier le
code du livre je n'avais pas réfléchi à cela et à vrais dire je n'y ait pas du tout pensée pour être tout à fait honnête et si j'y avais pensée j'aurai peut-être pas compris non plus ...
Aigle-Royal.