Programme C probleme

jason-live Messages postés 218 Statut Membre -  
Pilow Messages postés 410 Statut Membre -
Bonjour,
voici mon mini programme :

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

int main()
{
int nombreEnMillimetre, nombreEnCentimetre = 0 ;
printf("***** BIENVENUE DANS CE MINI PROGRAMME DE CONVERSION *****\n\n");
printf (" Entrez un nombre avec unite le millimetre pour le convertir en centimetre \n\n");
scanf ("%d", &nombreEnMillimetre);
nombreEnCentimetre = nombreEnMillimetre * 10;
printf ("%d millimetre est egal a %d centimetre \n\n", nombreEnMillimetre, nombreEnCentimetre);
system ("PAUSE");
return 0;
}


quand je fais 10 millimetre sa me dit 10 millimetre est egal a 100 centimetre
il ya un probleme, comment pourais-je faire pour avoir une vrai conversion???????

59 réponses

swoog42 Messages postés 1178 Statut Membre 244
 
nombreEnCentimetre = nombreEnMillimetre * 10;
FAUX...

nombreEnCentimetre = nombreEnMillimetre / 10;
0
scaravenger Messages postés 3055 Statut Membre 617
 
essaye plutot ca:
nombreEnCentimetre = nombreEnMillimetre /10;

Mais tu risque de rencontrer des problèmes d'arrondis.
Les nombres en virgulle flottante seraient plus appropriés.
0
swoog42 Messages postés 1178 Statut Membre 244
 
Le seul problème, c'est qu'il n'aura aucun arrondi, uniquement la partie entière de NombreenCentimètre.
Il faut passer ta variable de int en float. Pense à changer les conversions dans tes printf.
0
jason-live Messages postés 218 Statut Membre 35
 
ok merci pour tout les gens =)
ça veut dire que de millimetre on veut passer par les unité vers la droite il faut diviser par 10 a chaque fois ?
et aussi par exemple je tape 93 et ca me met 93.000000 millimetre est egal a 9.300000 centimetre ;;; comment je fais pour réduire le nombre de zéro ?


voici mon code :
#include <stdio.h>
#include <stdlib.h>

int main()
{
float nombreEnMillimetre, nombreEnCentimetre = 0 ;
printf("***** BIENVENUE DANS CE MINI PROGRAMME DE CONVERSION *****\n\n");
printf (" Entrez un nombre avec unite le millimetre pour le convertir en centimetre \n\n");
scanf ("%f", &nombreEnMillimetre);
nombreEnCentimetre = nombreEnMillimetre / 10;
printf ("%f millimetre est egal a %f centimetre \n\n", nombreEnMillimetre, nombreEnCentimetre);
system ("PAUSE");
return 0;
}
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
swoog42 Messages postés 1178 Statut Membre 244
 
va voir du coté de la fonction round(), bibliotheque math.h il me semble
0
jason-live Messages postés 218 Statut Membre 35
 
ok merci bon je vais en rester là avec les fonction round je reste a la fonction normal de départ merci beaucoup ;)
0
swoog42 Messages postés 1178 Statut Membre 244
 
#include <stdio.h>
#include <stdlib.h>
#include <math.h>

int main()
{
float nombreEnMillimetre, nombreEnCentimetre = 0 ;
printf("***** BIENVENUE DANS CE MINI PROGRAMME DE CONVERSION *****\n\n");
printf (" Entrez un nombre avec unite le millimetre pour le convertir en centimetre \n\n");
scanf ("%f", &nombreEnMillimetre);
nombreEnCentimetre =nombreEnMillimetre / 10, 2;
printf ("%f millimetre est egal a %f centimetre \n\n", round(nombreEnMillimetre, 2), round(nombreEnCentimetre, 2));
system ("PAUSE");
return 0;
}
0
jason-live Messages postés 218 Statut Membre 35
 
explique moi ce que u as fais avec précision , j'ai du mal stp ;)
0
swoog42 Messages postés 1178 Statut Membre 244
 
j'ai inséré la fonction round() dans ton affichage, avec seulement 2 décimales
0
jason-live Messages postés 218 Statut Membre 35
 
ah ok ok merci
0
swoog42 Messages postés 1178 Statut Membre 244
 
essaye et dis moi si ca marche
0
jason-live Messages postés 218 Statut Membre 35
 
il y a un probleme a cette ligne : printf ("%f millimetre est egal a %f centimetre \n\n", round(nombreEnMillimetre, 2), round(nombreEnCentimetre, 2));
0
Pilow Messages postés 410 Statut Membre 71
 
Pour moi le prototype de round c'est :

double
     round(double x);


Et cette fonction renvoi la partie entière du nombre envoyé non ?

Donc pas de precision sur le nombre de decimale ?

 The round() functions return the integral value nearest to x rounding
     half-way cases away from zero, regardless of the current rounding direc-
     tion.


En clair moi j'aurai mis :

printf ("%f millimetre est egal a %f centimetre \n\n", round(nombreEnMillimetre), round(nombreEnCentimetre));


Mais en ce cas tu n'as plus les chiffres après la virgule

Donne nous le message d'erreur pour + d'infos
0
feadin91 Messages postés 282 Statut Membre 89
 
Le fonctionnement que tu viens de citer est celui de la fonction mathématique "Tronquer"... Il me semble que ce n'est pas le seul fonctionnement de round()
Il me semble, de mémoire, que round est surchargée.

double round(double x, int y);


non?
0
Pilow Messages postés 410 Statut Membre 71
 
C'est fort possible.
0
jason-live Messages postés 218 Statut Membre 35
 
nan mais laisser c'est pas grave de toute facon je suis la lecon grace au site du 0 donc on en est pas encore au fontion math et tout laissez ...
0
swoog42 Messages postés 1178 Statut Membre 244
 
des surcharges en C ??? oula...
en fait, j'ai confondu la fonction round() du C avec celle de php ><
0
feadin91 Messages postés 282 Statut Membre 89
 
Ya pas de surcharges de fonctions en C? O_ô
0
Pilow Messages postés 410 Statut Membre 71 > feadin91 Messages postés 282 Statut Membre
 
Un des apports les plus intéressants du C++ par rapport au C, hormis l'ajout du concept objet, est la possibilité d'appeler plusieurs fonctions avec le même nom, pour peu que celle-ci aient leurs arguments différents (en type et/ou en nombre).
Ce principe est appelé surcharge de fonction. 


ça doit vouloir dire que non, pas en C ^^
0
jason-live Messages postés 218 Statut Membre 35
 
sinon vous avez pas des petit exo que vous me dites de faire comme ce que je viens de faire mais pas des truc duure hin ^^ parce que je débute dans le C !!
merci a vous
0
feadin91 Messages postés 282 Statut Membre 89
 
Vas-y, code un programme qui calcule le nombre d'atomes dans l'univers!! :P
Facile...

..... non?

Boarf, perso j'ai commencé à me faire la main sur des trucs bateaux, du genre des exos proposés par le SDZ donc...
0
swoog42 Messages postés 1178 Statut Membre 244
 
commence déjà par suivre les cours du site du zero, tu auras une bonne base.
0
jason-live Messages postés 218 Statut Membre 35
 
c'est une blague le calcul des atomes ? :O

nan mais sérieux donnez moi des truc simple come ca je me connais plus je m'entraine a des truc sumple je comprend mieu apré ;)
0