Problème de débutant

sebz10 Messages postés 2 Date d'inscription lundi 28 février 2011 Statut Membre Dernière intervention 13 mars 2011 - 13 mars 2011 à 19:53
cptpingu Messages postés 3837 Date d'inscription dimanche 12 décembre 2004 Statut Modérateur Dernière intervention 28 mars 2023 - 14 mars 2011 à 10:06
salut,
Pourriez vous me donner la correction de ce code svp:
#include<cstdlib>
#include


int main()
{
/********************
Corps de la fonction
********************/

// fonction permettant a l'utilisateur de saisir le premier nombre

cin>>intNombre1;

// fonction fonction permettant a l'utilisateur de saisir  la signe de l'opération

cin>>chrOperand;

// fonction permettant a l'utilisateur de saisir le second nombre

cin>>intNombre2;


 if(chrOperand == '+');   
{   
 intResultat = intNombre1 + intNombre2;
}
 else if(chrOperand == '-');   
{   
 intResultat = intNombre1 - intNombre2;
}
else if(chrOperand == '*');   
{   
 intResultat = intNombre1 * intNombre2;
}
else if(chrOperand == '/');   
{   
 intResultat = intNombre1 / intNombre2;
}          
 cout<>intNombre1;
 cout<<"entrez le signe de l'opération +-*/"<<endl;
 cin>>chrOperand;
 cout<<"entrez le second nombre"<<endl;
 cin>>intNombre2;
 cout<<"le resultat est"<<endl;
 cout<<int resultat<<endl;
 
 double dblNombre1 0.0, dblNombre2 0.0;
 double dblResultat =0.0
 char chrOperand = NULL;

system("PAUSE");
return EXIT_SUCCESS;
}


 
 

1 réponse

cptpingu Messages postés 3837 Date d'inscription dimanche 12 décembre 2004 Statut Modérateur Dernière intervention 28 mars 2023 123
14 mars 2011 à 10:06
- Pas besoin de stdlib, c'est du C, pas du C++.
- Évite les "using namespace", voir: http://0217021.free.fr/portfolio/axel.berardino/articles/bon-usage-using-namespace
- Pourquoi mettre NULL dans un char ?
- On peut directement demander les 3 valeurs d'un seul coup
- Il faut gérer la division par 0
- Que fait-on si on ne trouve pas l'opérateur ?
- Mieux vaut faire un switch que plein de if à la suite, lorsque c'est possible.

Voici une version corrigé de ce que tu as fait, mais elle est encore améliorable (n'est pas gérer, les soucis d'entrée incorrect, comme "a + 6"):
#include 

int main()
{
  int nb1;
  int nb2;
  char signe;
  int res;

  std::cout << "Entrez les deux nombres et le signe en notation mathematique: " << std::endl;
  std::cin >> nb1 >> signe >> nb2;

  switch (signe)
  {
    case '+':
      res = nb1 + nb2;
      break;
    case '-':
      res = nb1 - nb2;
      break;
    case '*':
      res = nb1 * nb2;
      break;
    case '/':
      if (nb2 == 0)
      {
std::cerr << "Division par 0 impossible" << std::endl;
return 1;
      }

      res = nb1 / nb2;
      break;
    default:
      std::cerr << "Operande inconnue: " << signe << std::endl;
      return 2;
  }

  std::cout << "Le resultat est: " << res << std::endl;

  //system("PAUSE");
  return 0;
}


________________________________________________________________________
Historique de mes créations, et quelques articles:
[ http://0217021.free.fr/portfolio http://0217021.free.fr/portfolio]
Merci d'utiliser Réponse acceptée si un post répond à votre question
0
Rejoignez-nous