C++ calc.nombre décimal et console se ferme

Résolu
mat08 Messages postés 322 Date d'inscription   Statut Membre Dernière intervention   -  
fiddy Messages postés 11069 Date d'inscription   Statut Contributeur Dernière intervention   -
Bonjour, je suis en train de faire un petit petit programme en C++ avec CodeBlocks, jusque là tout va bien, mais quand je le lance hors codeblocks, je dois rentrer un chiffre à convertir (normal). Problème, lorsque je rentre ce chiffre et que je fais entrer, la console se ferme, alors j'ai essayé de mettre system("PAUSE"); avant return 0; mais ça me marque

"error : "system" was not declared in this scope".

Voilà mon premier problème, ensuite le second, je veux multiplier par un nombre décimal alors je fais

int resultat = 0;
int a = 0;
float b = 6.55;

cin >> a;

resultat = a * b;

mais lorsque je rentre mon chiffre avec codeblocks puisque hors codeblocks il se referme, il ne se multiplie pas par 6.55 mais par 6. Ce qui est incorrect.

J'espere que j'ai été clair, merci de votre aide !


A voir également:

2 réponses

Utilisateur anonyme
 
Bonjour,

Pour la fonction system, il me semble qu'il faut inclure cstdlib, comme ceci :
#include <cstdlib>

Pour le second souci, vous demandez à saisir un int, un nombre entier. Mettez un double ou un float, et ça ira mieux :).
Mourir nuit gravement à votre santé.
1
mat08 Messages postés 322 Date d'inscription   Statut Membre Dernière intervention   9
 
Comment mettre un double ? Et c'est quoi un double ?
0
le père
 
Bonjour

La fonction system est déclarée dans stdlib, il suffit donc d'ajouter
#include <stdlib.h>

au début de ton programme.

Pour ton second problème, c'est sûrement parce que tu mets le résultat de la multiplication dans un int. Change ta déclaration
float resultat = 0;
1
mat08 Messages postés 322 Date d'inscription   Statut Membre Dernière intervention   9
 
Merci cela fonctionne, par contre pour "float" ça ne fonctionne pas :(
0
le père
 
Si, maintenant ça multiplie bien par 6.55. Par contre, le nombre a est toujours un entier. Peut-être voulais-tu qu'il soit lui aussi en float.

Si tu saisis 1, vois-tu bien le résultat 6.55 ? Si tu ne vois que 6, c'est peut-être que ce code est dans une fonction qui retourne un int, ou que tu recopies resultat dans une variable int.
0
fiddy Messages postés 11069 Date d'inscription   Statut Contributeur Dernière intervention   1 846
 
La fonction system est déclarée dans stdlib, il suffit donc d'ajouter
#include <stdlib.h>

En C++, c'est plutôt cstdlib qu'il faut inclure comme dit par tiobet.

Après, la multiplication se fait bien par 6.55, mais puisque resultat est en int, il arrondit. Il faut donc mettre en double (ou éventuellement float).

Ce qui donnerait :
#include <iostream>  
#include <cstdlib>  
using namespace std;  
int main() {  
   double resultat = 0;   
   int a = 0;   
   double b = 6.55;   

   cin >> a;   

   resultat = a * b;  
     
   cout << "resultat=" << resultat << endl; 
   system("pause"); 
}  
0