Le 0 en C++ !!

Résolu
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. 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
    1. Contributeur
      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
      1. ça marche .. Merci
        0
        1. Contributeur
          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
      2. Oui je sais .. Mais c'est pas un blème ça .. Merci bcp pour l'aide .. !! ^^
        0