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

  • Votes
  • Date
  • Date décroissante
  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;
    }
    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. ça marche .. Merci
        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,
      2. Oui je sais .. Mais c'est pas un blème ça .. Merci bcp pour l'aide .. !! ^^