Programme C probleme

Fermé
jason-live Messages postés 178 Date d'inscription mardi 1 septembre 2009 Statut Membre Dernière intervention 26 décembre 2009 - 19 oct. 2009 à 13:14
Pilow Messages postés 400 Date d'inscription vendredi 2 octobre 2009 Statut Membre Dernière intervention 23 décembre 2009 - 21 oct. 2009 à 09:57
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 1060 Date d'inscription mercredi 30 septembre 2009 Statut Membre Dernière intervention 16 décembre 2018 244
19 oct. 2009 à 13:20
nombreEnCentimetre = nombreEnMillimetre * 10;
FAUX...

nombreEnCentimetre = nombreEnMillimetre / 10;
0
scaravenger Messages postés 2685 Date d'inscription mercredi 28 mai 2008 Statut Membre Dernière intervention 30 janvier 2015 616
19 oct. 2009 à 13:20
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 1060 Date d'inscription mercredi 30 septembre 2009 Statut Membre Dernière intervention 16 décembre 2018 244
19 oct. 2009 à 13:23
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 178 Date d'inscription mardi 1 septembre 2009 Statut Membre Dernière intervention 26 décembre 2009 35
19 oct. 2009 à 13:36
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 1060 Date d'inscription mercredi 30 septembre 2009 Statut Membre Dernière intervention 16 décembre 2018 244
19 oct. 2009 à 13:39
va voir du coté de la fonction round(), bibliotheque math.h il me semble
0
jason-live Messages postés 178 Date d'inscription mardi 1 septembre 2009 Statut Membre Dernière intervention 26 décembre 2009 35
19 oct. 2009 à 13:43
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 1060 Date d'inscription mercredi 30 septembre 2009 Statut Membre Dernière intervention 16 décembre 2018 244
19 oct. 2009 à 13:52
#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 178 Date d'inscription mardi 1 septembre 2009 Statut Membre Dernière intervention 26 décembre 2009 35
19 oct. 2009 à 14:07
explique moi ce que u as fais avec précision , j'ai du mal stp ;)
0
swoog42 Messages postés 1060 Date d'inscription mercredi 30 septembre 2009 Statut Membre Dernière intervention 16 décembre 2018 244
19 oct. 2009 à 14:08
j'ai inséré la fonction round() dans ton affichage, avec seulement 2 décimales
0
jason-live Messages postés 178 Date d'inscription mardi 1 septembre 2009 Statut Membre Dernière intervention 26 décembre 2009 35
19 oct. 2009 à 14:09
ah ok ok merci
0
swoog42 Messages postés 1060 Date d'inscription mercredi 30 septembre 2009 Statut Membre Dernière intervention 16 décembre 2018 244
19 oct. 2009 à 14:09
essaye et dis moi si ca marche
0
jason-live Messages postés 178 Date d'inscription mardi 1 septembre 2009 Statut Membre Dernière intervention 26 décembre 2009 35
19 oct. 2009 à 14:12
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 400 Date d'inscription vendredi 2 octobre 2009 Statut Membre Dernière intervention 23 décembre 2009 71
19 oct. 2009 à 14:25
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 257 Date d'inscription lundi 20 avril 2009 Statut Membre Dernière intervention 28 avril 2010 89
19 oct. 2009 à 14:33
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 400 Date d'inscription vendredi 2 octobre 2009 Statut Membre Dernière intervention 23 décembre 2009 71
19 oct. 2009 à 14:38
C'est fort possible.
0
jason-live Messages postés 178 Date d'inscription mardi 1 septembre 2009 Statut Membre Dernière intervention 26 décembre 2009 35
19 oct. 2009 à 15:19
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 1060 Date d'inscription mercredi 30 septembre 2009 Statut Membre Dernière intervention 16 décembre 2018 244
19 oct. 2009 à 15:24
des surcharges en C ??? oula...
en fait, j'ai confondu la fonction round() du C avec celle de php ><
0
feadin91 Messages postés 257 Date d'inscription lundi 20 avril 2009 Statut Membre Dernière intervention 28 avril 2010 89
19 oct. 2009 à 15:27
Ya pas de surcharges de fonctions en C? O_ô
0
Pilow Messages postés 400 Date d'inscription vendredi 2 octobre 2009 Statut Membre Dernière intervention 23 décembre 2009 71 > feadin91 Messages postés 257 Date d'inscription lundi 20 avril 2009 Statut Membre Dernière intervention 28 avril 2010
19 oct. 2009 à 15:29
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 178 Date d'inscription mardi 1 septembre 2009 Statut Membre Dernière intervention 26 décembre 2009 35
19 oct. 2009 à 15:26
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 257 Date d'inscription lundi 20 avril 2009 Statut Membre Dernière intervention 28 avril 2010 89
19 oct. 2009 à 15:29
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 1060 Date d'inscription mercredi 30 septembre 2009 Statut Membre Dernière intervention 16 décembre 2018 244
19 oct. 2009 à 15:28
commence déjà par suivre les cours du site du zero, tu auras une bonne base.
0
jason-live Messages postés 178 Date d'inscription mardi 1 septembre 2009 Statut Membre Dernière intervention 26 décembre 2009 35
19 oct. 2009 à 15:31
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