Le 0 en C++ !!

Résolu/Fermé
Leo Shady Messages postés 114 Date d'inscription mercredi 22 avril 2009 Statut Membre Dernière intervention 23 août 2011 - 3 sept. 2010 à 15:15
Leo Shady Messages postés 114 Date d'inscription mercredi 22 avril 2009 Statut Membre Dernière intervention 23 août 2011 - 3 sept. 2010 à 17:38
Bonjour,

J'ai écrit un simple programme avec C++ .. Mais je ne sais pas ou j'ai commis l'erreur ..
Merci d'avance

PS : Je suis débutant !!

---------------------------------------------------------------------------------------------------------


#include <iostream>

using namespace std;

int main()
{
int num1,num2;
float num3; //utiliser "double" ne régelera pas le problème

cout << "Put Number 1 \n";
cin >> num1;

cout << "Put Number 2 \n";
cin >> num2;

num3 = num1/num2;

if(num2 == 0)
{
cout << "Error, Number 2 = 0 \n ";
}
else
{
cout << "Number 3 = " << num3;
}
return 0;
}

---------------------------------------------------------------------------------------------------------

4 réponses

scaravenger Messages postés 2685 Date d'inscription mercredi 28 mai 2008 Statut Membre Dernière intervention 30 janvier 2015 616
Modifié par scaravenger le 3/09/2010 à 15:26
essaye
float num1,num2;
.
.
.
//num3 = num1/num2; à déplacer

if(num2 == 0)
{
cout << "Error, Number 2 = 0 \n ";
}
else
{
num3 = num1/num2;// replacée
cout << "Number 3 = " << num3;
}
2
fiddy Messages postés 11069 Date d'inscription samedi 5 mai 2007 Statut Contributeur Dernière intervention 23 avril 2022 1 841
3 sept. 2010 à 15:39
Bonjour,
Non le type "double" ne réglera pas le problème. Il n'empêche qu'il vaut mieux utiliser "double" que "float".
num3 = num1/num2;
La division int/int donne le diviseur. Pour faire ce que tu souhaites, il faut caster : num3 = (double)num1/num2; ou num3 = (float)num1/num2;
Et plutôt que faire le test : if (num2==0) après num3=num1/num2; vaut mieux le faire avant pour savoir si tu peux diviser ou pas.
Par exemple :
if (num2==0) {
   cout << "error..." << endl;
}
else {
   num3=(double)num1/num2;
   cout << num3 << endl;
}


Cdlt,
1
Leo Shady Messages postés 114 Date d'inscription mercredi 22 avril 2009 Statut Membre Dernière intervention 23 août 2011 15
3 sept. 2010 à 15:45
ça marche .. Merci
0
fiddy Messages postés 11069 Date d'inscription samedi 5 mai 2007 Statut Contributeur Dernière intervention 23 avril 2022 1 841
3 sept. 2010 à 16:34
Ca marche, oui, mais là num1 et num2 ne sont plus des entiers.
Est-ce bien ce que tu veux ? Si tu veux que num1 et num2 restent des entiers, il faudra que caster.
Cdlt,
0
Leo Shady Messages postés 114 Date d'inscription mercredi 22 avril 2009 Statut Membre Dernière intervention 23 août 2011 15
3 sept. 2010 à 17:38
Oui je sais .. Mais c'est pas un blème ça .. Merci bcp pour l'aide .. !! ^^
0