Le 0 en C++ !!

Résolu
Leo Shady Messages postés 101 Date d'inscription   Statut Membre Dernière intervention   -  
Leo Shady Messages postés 101 Date d'inscription   Statut Membre Dernière intervention   -
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

  1. scaravenger Messages postés 2691 Date d'inscription   Statut Membre Dernière intervention   625
     
    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
  2. fiddy Messages postés 441 Date d'inscription   Statut Contributeur Dernière intervention   1 847
     
    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
  3. Leo Shady Messages postés 101 Date d'inscription   Statut Membre Dernière intervention   15
     
    ça marche .. Merci
    0
    1. fiddy Messages postés 441 Date d'inscription   Statut Contributeur Dernière intervention   1 847
       
      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
  4. Leo Shady Messages postés 101 Date d'inscription   Statut Membre Dernière intervention   15
     
    Oui je sais .. Mais c'est pas un blème ça .. Merci bcp pour l'aide .. !! ^^
    0