Salut les gars, je suis plutôt novice en programmation et en train de travailler sur la programmation, les principes et la pratique de Stroustrup en C++ et je me suis complètement arrêté à la fin du chapitre 3 un exercice vous demandant d'écrire un morceau de code qui fait un certain nombre de calculs impliquant 2 nombres qui inclut la recherche du rapport des nombres. Malheureusement, cela n'a pas été couvert du tout dans le livre et je me suis arraché les cheveux en essayant de comprendre par moi-même, seulement capable de trouver des exemples de code de manière avancée pour mon petit petit cerveau.C++ calculer le ratio de 2 nombres
Le code que j'ai en ce moment est:
double ratio;
if (val2 > val1)
ratio = (val2/val1);
if (val2 < val1)
ratio = (val1/val2);
cout << "The ratio of " << val1 << " and " << val2 << " is 1:" << ratio << '\n';
qui fonctionne très bien pour les nombres qui assimilent à un rapport ensemble (par exemple, 100 et 25) Cependant, malgré moi définissant la variable « ratio » en tant que doubler supprime les décimales de la réponse dans les cas de rapports non entiers. Quelqu'un peut-il me dire où je vais mal?
Ce n'est pas le problème, mais 'ratio = (val2/val1)' n'a pas besoin de parenthèses. –
'((double) val2)/val1'; * entier * division renvoie * entier *, par ex.'7/2 == 3' et' 7% 2 == 1' (reste) quand '7.0/2 = 3.5' –
Quels sont les types de' val1' et 'val2'? (Oui, je suis sûr que je connais la réponse, mais c'est la première chose que vous devriez regarder quand vous obtenez un comportement surprenant) –