Programme C probleme
Pilow Messages postés 410 Statut Membre -
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???????
Configuration: Windows Vista Firefox 3.5.3
- Programme C probleme
- Programme demarrage windows - Guide
- Message programmé - Guide
- Télécharger le programme de pmu - Télécharger - Médias et Actualité
- Mail programmé gmail - Guide
- Désinstaller programme windows 10 - Guide
59 réponses
- 1
- 2
- 3
Le problème est une conversion millimètres vers centimètres mal implémentée dans le programme, qui multiplie le nombre de millimètres par 10 au lieu de le diviser par 10. Des solutions essentielles consistent à remplacer la multiplication par une division par 10 et à utiliser un type flottant pour préserver les décimales lorsque l’on convertit, par exemple mm / 10.0. En cas d'utilisation d'entiers, la division tronque le résultat; il est préférable d'utiliser le type double et d'imprimer avec %f (par exemple nombreEnMillimetre / 10.0) pour obtenir une valeur en centimètres fiable. Enfin, des échanges mentionnent l'emploi éventuel de la fonction round() via la bibliothèque math.h pour arrondir le résultat et affiner l'affichage en centimètres.
nombreEnCentimetre = nombreEnMillimetre /10;
Mais tu risque de rencontrer des problèmes d'arrondis.
Les nombres en virgulle flottante seraient plus appropriés.
Il faut passer ta variable de int en float. Pense à changer les conversions dans tes printf.
ç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;
}
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question#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;
}
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
Il me semble, de mémoire, que round est surchargée.
double round(double x, int y);
non?
en fait, j'ai confondu la fonction round() du C avec celle de php ><
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 ^^
- 1
- 2
- 3