
|
|
|
Auteur
|
Message
|
1
|
|
|
|
Bonjour je suis un debutant en c++ (sa fait trois jour que j'ai commencer) et j'ai un probleme ce code si dessous ne marche pas, j'ai a peut près compris la raison il manque des float a la place de int mais je c'est pas lequelle!! Quand je change la valeur c et que je met une valeur entiere le code marche. Sinon le logiciel marche jusquau resultat: le logiciel me dit que c'est 0 merci de maider:
#include <iostream>
using namespace std;
int Ajout(int x, int y, int z) //fonction Ajout
{
return (x*y*y*z); //x=a; y=b; z=c=0,7854
}
int main()
{
cout << "ce programme calcul l air d un cylindre";
int a, b, c, d; //les valeurs
cout << " entrer en premier le diametre, espace, puis ensuite la hauteur";
cin >> a; //le 1er chiffre = a
cin >> b; //2eme chiffre=b
c= 0,7854; // valeur de c donc du z
d=Ajout(a, b, c); //fonction ajout du debut du code
cout << "c est egal a : " << d; //d est le resultat
return 0;
}
|
|
|
|
|
Merci de poster des réponses utiles et de rester courtois dans ce forum
-->Message édité par Beno@ le 31/07/2007 21:56:05<--
|
|
|
|
|
Si il te réponds tout le temps 0, c'est uniqement parce que tu as déclaré c comme un entier ^^" Le problème, c'est que : float c=0,7854 est correct, mais int c = 0,7854 est faux. La base du problème est "mathématique", un entier est ... entier. Lorsque tu va affecter une valeur non entière à un entier, il va y avoir troncature. Ton 0,7854 va donc devenir 0, ce que renverra toujours ta fonction
Généralement, pour toute application a but calculatoire, on passe en float^^
|
|
Mouais...
|
|
|
+1 Togusa. Declare des float à la place des int là ou tu en as besoin:
#include <iostream>
using namespace std;
float Ajout(int x, int y, float z) //Un float tu renverras, car float il risque d'y avoir.
{
return (x*y*y*z); //x=a; y=b; z=c=0,7854
}
int main()
{
cout << "ce programme calcul l air d un cylindre";
int a, b, c; //les valeurs entières
float d; //les valeurs float
cout << " entrer en premier le diametre, espace, puis ensuite la hauteur";
cin >> a; //le 1er chiffre = a
cin >> b; //2eme chiffre=b
c= 0,7854; // valeur de c donc du z
d=Ajout(a, b, c); //fonction ajout du debut du code
cout << "c est egal a : " << d; //d est le resultat
return 0;
}
D'ailleurs tiens en passant, me souviens plus si tu peux multiplier des int avec des floats, te faudra peut être tout passer en float (et renomme ta fonction Ajout en quelque chose de plus parlant comme CylinderArea() , et ta formule est bizarre :p...)
-->Message édité par D3bug le 06/08/2007 20:19:41<--
-------
E6850 @ 3.6Ghz (stock, 9x400) / GA-P35-DS3 / Asus 8800GTX @ 600/1000 / Crucial Ballistix 4-4-4-12 @ 400, 1:1
|
|
|
|
|
merci a tous mais il y avait une autre erreur que personne n'avait remarquer a la place d'un piont j'avais mis une virgule. Je suis vraiment un boulet
|
|
Mouais...
|
|
|
lovis1993 a écrit :
merci a tous mais il y avait une autre erreur que personne n'avait remarquer a la place d'un piont j'avais mis une virgule. Je suis vraiment un boulet
Ah ouaip, sur la valeur de c, exact...autant pour nous mais il n'empêche que les points soulignés sont aussi valables .
-------
E6850 @ 3.6Ghz (stock, 9x400) / GA-P35-DS3 / Asus 8800GTX @ 600/1000 / Crucial Ballistix 4-4-4-12 @ 400, 1:1
|
|
1
|
|

|
Droppix Recorder
 |
Gravez facilement vos fichiers.
Une suite logicielle extrêmement simple qui répond à tous
vos besoins de gravure sur CD, DVD ou Bluray.
|




|