Tom's Guide > Forum > Programmation > plusieur question c ,c++
Mot :    Pseudo :           
 

salut
Voila je crée un petit programe en dos pour me faciliter ma conta
mais je debut dans la programation
jutilise double pour fair un variable decimale mais quand j'execute mon prog les nombre safiche avec 6 decimal
je voudre un fonction qui face la meme chose que doublemais qui nafiche que deux decimale et non pas six

comme sur limage
jeveux que lacomende affiche se qui a dans le cadre bleue alaplace de se qui a entourer en rouge

image

Liens sponsorisés
Inscrivez-vous ou connectez-vous pour masquer ceci.

printf(); peut le faire. Suffit juste de lui donner le bon format. %.2lf devrait marcher, je pense...

Pour plus d'info sur printf, voire par exemple ici, ou sur google...


Citation :

je voudre un fonction qui face la meme chose que doublemais qui nafiche que deux decimale et non pas six



Par contre je te suggère de réviser les bases du C, float est un TYPE et non pas une FONCTION... :-P
Alors, heureux?

Répondre à Rakipu

bon je regarde ton info et je te dis si sa a marcher

Répondre à andrelec1

Si je renplace le %lf par %.2lf sa chanje rien

j'ai toujour 6 chiffre apres la virgule.

dans mon programe g taper :

printf("Vous avez %lf euro en piece de 0,02 euro " , valeur2cts);Vous avez 0,000000 euro en piece de 0,02 euro

__________________________________________

remplacer le %lf par %.2lf na rien fais quelqun a une autre proposition ???

Répondre à andrelec1

Chez moi ca marche parfaitement:
un exemple(j'ai honte, c'est sous windaube...):

Code :
  1. # include <stdio.h>
  2. int main(void)
  3. {
  4.   float valeur2cts=0.0;
  5. printf("Vous avez %.2lf euro en piece de 0,02 euro \n " , valeur2cts);
  6. system("PAUSE" );
  7. }


Et j'obtiens:
http://alpha-clan-france.ifrance.com/secret/imgstock/test.jpg

Donc je pense pas que cela vienne de moi...

Répondre à Rakipu

La solution de Rakipu est la bonne.

Répondre à CRicky

merci
pour tout vos reponce
apre avoir bidouiet quelque heure g reussi a trouver
%2f
marche tre bien avec codesblock

puits j'ai comtinuer mon programe et je sui bloquer car je ne compren pas pour koi sa na marche pas

voila le code et en dessous limage

#include <stdio.h>
#include <stdlib.h>

int main(int argc , char *argv[])
{
long ndpiece2euro = 0;//nombre de piece de deux euro
long ndpiece1euro = 0;//nombre de piece de un euro
long ndpiece50cts = 0;//nombre de piece de 0,50 cts d'euro
long ndpiece20cts = 0;//nombre de piece de 0,20 cts d'euro
long ndpiece10cts = 0;//nombre de piece de 0,10 cts d'euro
long ndpiece5cts = 0;//nombre de piece de 0,05 cts d'euro
long ndpiece2cts = 0;//nombre de piece de 0,02 cts d'euro
long ndpiece1cts = 0;//nombre de piece de 0,01 cts d'euro

//variable pour pouvoir calculer le nombre de piece et sa valeur

long nombredepiece ; //nombre de piece en tous
long valeur2euro ; // nombre de piece * sa valeur
long valeur1euro ; //idem
double valeur50cts ; //idem
double valeur20cts ; //idem
double valeur10cts ; //idem
double valeur5cts ; //idem
double valeur2cts ; //idem
double valeur1cts ; //idem
double valeurtotal ; //valeur total en €

//variable pour laffichaje des ligne printf

long ligne2euro ;
long ligne1euro ;
long ligne50cts ;
long ligne20cts ;
long ligne10cts ;
long ligne5cts ;
long ligne2cts ;
long ligne1cts ;

//debut du programe

printf("Bienvenue\n\n" );


printf("Si vous avez des pieces de 2 euro tapez 1 sinon tapez 2 , puits ENTRER\n" );
scanf("%ld" , &ligne2euro );
if (ligne2euro == 1 )
{
printf("Tapez le nombre de pieces de 2 euros puis appuiez sur ENTRER\n" );
scanf("%ld", &ndpiece2euro);
}


printf("Si vous avez des pieces de 1 euro tapez 1 sinon tapez 2 , puits ENTRER\n" );
scanf("%ld" , &ligne1euro );
if (ligne1euro == 1 )
{
printf("Tapez le nombre de pieces de 1 euro puis appuiez sur ENTRER\n" );
scanf("%ld", &ndpiece1euro);
}


printf("Si vous avez des pieces de 0,50 cts d'euro tapez 1 sinon tapez 2 , puits ENTRER\n" );
scanf("ld" , &ligne50cts );
if (ligne50cts == 1 )
{
printf("Tapez le nombre de pieces de 0,50 cts d'euro puis appuiez sur ENTRER\n" );
scanf("%ld", &ndpiece50cts);
}


printf("Si vous avez des pieces de 0,20 cts d'euro tapez 1 sinon tapez 2 , puits ENTRER\n" );
scanf("%ld" , &ligne20cts);
if (ligne20cts == 1 )
{
printf("Tapez le nombre de pieces de 0,20 cts d'euro puis appuiez sur ENTRER\n" );
scanf("%ld" , &ndpiece20cts);
}


printf("Si vous avez des pieces de 0,10 cts d'euro tapez 1 sinon tapez 2 , puits ENTRE\n" );
scanf("%ld" , &ligne10cts);
if (ligne10cts == 1 )
{
printf("Tapez le nombre de pieces de 0,10 cts d'euro puis appuiez sur ENTRER\n" );
scanf("%ld" , &ndpiece10cts);
}


printf("Si vous avez des pieces de 0,05 cts d'euro tapez 1 sinon tapez 2 , puits ENTRER \n" );
scanf ("ld" , &ligne5cts);
if (ligne5cts == 1 );
{
printf("Tapez le nombre de pieces de 0,05 cts d'euro puis appuiez sur ENTRER\n" );
scanf("%ld" , &ndpiece5cts );
}



printf("Si vous avez des pieces de 0,02 cts d'euro tapez 1 sinon tapez 2 , puits ENTRER\n" );
scanf("%ld" , &ligne2cts);
if (ligne2cts == 1 );
{

printf("Tapez le nombre de pieces de 0,02 cts d'euro puis appuiez sur ENTRER\n" );
scanf("%ld" , &ndpiece2cts );
}


printf("Si vous avez des pieces de 0,01 cts d'euro tapez 1 sinon tapez 2 , puits ENTRE\n" );
scanf("%ld" , &ligne1cts);
if (ligne1cts == 1 );
{
printf("Taper le nombre de pieces de 0,01 cts d'euro puis appuiez sur ENTRER\n" );
scanf("%ld" , &ndpiece1cts );
}

system("pause" );//pause avant les resulta

//puits les calcule qui von leur atribuer les valeur eu valeur suivant les entrer

valeur2euro = ndpiece2euro * 2;
valeur1euro = ndpiece1euro * 1;
valeur50cts = ndpiece50cts * 0.50;
valeur20cts = ndpiece20cts * 0.20;
valeur10cts = ndpiece10cts * 0.10;
valeur5cts = ndpiece5cts * 0.05;
valeur2cts = ndpiece2cts * 0.02;
valeur1cts = ndpiece1cts * 0.01;
nombredepiece = ndpiece2euro + ndpiece1euro + ndpiece50cts + ndpiece20cts + ndpiece10cts + ndpiece5cts + ndpiece2cts + ndpiece1cts ;

valeurtotal = valeur2euro + valeur1euro + valeur50cts + valeur20cts + valeur10cts + valeur5cts + valeur2cts + valeur1cts ;

printf("\n\n" );
printf("Veuiller patienter pendant les calculs\n...\n...\n...\n...\n...\n...\n...\n...\n...\n...\n...\n...\n...\n...\n...\n...\n...\n...\n...\n...\n...\n...\n...\n...\n...\n...\n...\n...\n...\n...\n...\n...\n...\n" );
//atente bidon pour fair style
system("pause" );

//afichage des resulta

printf("\n\n" );
printf("Vous avez %ld Euros en piece de 2 Euro\n\n", valeur2euro);
printf("Vous avez %ld Euros en piece de 1 Euro\n\n", valeur1euro);
printf("Vous avez %.2f Euros en piece de 0,50 Euro\n\n", valeur50cts);
printf("Vous avez %.2f Euros en piece de 0,20 Euro\n\n", valeur20cts);
printf("Vous avez %.2f Euros en piece de 0,10 Euro\n\n", valeur10cts);
printf("Vous avez %.2f Euros en piece de 0,05 Euro\n\n", valeur5cts);
printf("Vous avez %.2f Euros en piece de 0,02 Euro\n\n", valeur2cts);
printf("Vous avez %.2f Euros en piece de 0,01 Euro\n\n", valeur1cts);
printf("Montant total %.2f Euros\n\n" , valeurtotal);
printf("Vous avez %ld Pieces \n\n" , nombredepiece);
system("pause" );
return 0;
}
http://img333.imageshack.us/my.php [...] epb6pv.png[/url]

ps : je narive plus a inserer des image sur le forum :-? comment on fais deja ?
:-? :-?

Répondre à andrelec1

Il est ou le problème exactement? Dans ta capture d'écran je vois juste qu'il en est arrivé a ta première instruction pause et qu'il attends que tu appuies sur une touche!
system("pause" );//pause avant les resultat
et au fait elle servent a quoi toutes ces pauses? Ca embête l'utilisateur pour rien, me semble t'il... Il faudrait juste garder la dernière...

Répondre à Rakipu

bon j'ai trouver les erreur

un % oublier des ; en trop


mais si tu teste le programe tu verra a koi serve les system("pause" )

dit tu said pas si il exite des commendes qui permet de faire :
--> des alignement comme dans word
--> de mètre des couleur (sur le site du zero il dise que c pas possible mais mon perre a un programe en dos avec des couleur )
--> d'imprimer la fenetre ou des ligne predefinie (de preference )
--> d'enregistrer le texte de la fenetre ou les ligne predefinie ( de preference )

merci davance pour vos reponce

et de me dite pas que google et mon amie car je cherche aussi dessus

Répondre à andrelec1

>>>UP<<<
car la modification ne le fais pas

Répondre à andrelec1

Citation :


mais si tu teste le programe tu verra a koi serve les system("pause" )


Ben c'est une perte d'ergonomie pour ton programme selon moi. Après c'est toi qui vois, c'est ton programme :-D

Citation :


dit tu said pas si il exite des commendes qui permet de faire :
--> des alignement comme dans word


Il faudrait regarder du coté de printf(); et des différents formats qu'on peut lui donner. Du bon google en perspective (j'ai a flemme de chercher...)

Citation :


--> de mètre des couleur (sur le site du zero il dise que c pas possible mais mon perre a un programe en dos avec des couleur )


Ces programmes ont du être faits avec des bibliothèques spécifiques... Encore du google :-P

Citation :


--> d'imprimer la fenetre ou des ligne predefinie (de preference )


C'est surement possible mais je ne sais pas comment.

Citation :


--> d'enregistrer le texte de la fenetre ou les ligne predefinie ( de preference )


Ca peut se faire avec les fonctions de gestion des fichiers (fopen(); fprinf(); ... ), voir dans <stdio.h> & sur google pour plus de détails.

(Et j'ai pas dit: "Google est ton ami"! Oh zut, trop tard, je l'ai dit :lol: )

Répondre à Rakipu

merci de tes reponce je vais cherche et je tien au courant de levolution de mon programe

Répondre à andrelec1

slt
bon voila g chercher mais j'ai pas trouvais pourquoi ma fonction sleep planyter a la compilation

j'ai bien inclu time
et marquer

sleep (10000);
dans mon programe

qunqun a la solution

Répondre à andrelec1

la fonction sleep n'est pas normée car dépendante de l'OS, donc pas forcément présente dans le compilateur.
Généralement sous windows, c'est Sleep(), et ailleurs sleep().

ps: Dev-C++ déclare _sleep() mais l'indique obsolète au profit de Sleep()

Répondre à CRicky
Tom's Guide > Forum > Programmation > plusieur question c ,c++
Aller à :

Il y a 877 utilisateurs connus et inconnus. Pour voir la liste des connectés connus, cliquez ici.

Attention

Vous allez répondre sur un sujet resté inactif pendant plus de 6 mois.
Assurez-vous d'apporter des éléments nouveaux à la discussion avant de poursuivre.

Répondre Annuler
Liens