Belfegorvegeta
Messages postés3Date d'inscriptionsamedi 26 juillet 2008StatutMembreDernière intervention17 décembre 2008
-
17 déc. 2008 à 15:19
Belfegorvegeta
Messages postés3Date d'inscriptionsamedi 26 juillet 2008StatutMembreDernière intervention17 décembre 2008
-
17 déc. 2008 à 22:01
Bonjour, je voudrais pouvoir convertir un nombre entier entré par l'utilisateur en binaire, mais je dois afficher ce résultat chaine de caractère, le problème que je rencontre, c'est comment affecter une variable à une chaine de caractère ?
fregolo52
Messages postés1114Date d'inscriptionmercredi 15 juin 2011StatutMembreDernière intervention 6 mai 20214 17 déc. 2008 à 17:23
avant meme de lire ton code, le programme se fige = > boucle infinie. Bon voyons ton erreur.
reste est une chaine de caracètre, que tu compares à un entier (dans le while), c'est ca ton pb.
Dans ton programme, tu sortirais quand reste == 0; Ca ne va pas, tu va sortir à la 1ere ou 2e itération. Il faut que tu sorte quand quotien sera égal à 0. Comme dans mon code d'exemple.
int main()
{
int entier, quotient, resultant;
char reste[3], binaire[20];
printf("Saisissez un entier\n");
scanf("%d", &entier); /* L'utilisateur entre le nombre à convertir */
do
{
resultant = quotient % 2; /* Obtention du reste */
quotient = quotient / 2; /* Obtention du numérateur suivant */
strcpy(binaire, ""); /* Déclaration chaîne vide afin de ne pas avoir de problèmes pour la concaténation */
ltoa(resultant, reste, 10); /* Conversion du reste en chaine */
strcat(binaire, reste); /* Concaténation d'une partie de la chaîne bianaire avec le nouveau reste */
int main()
{
int quotient, resultant;
char reste[5], binaire[20];
printf("Saisissez un entier\n");
scanf("%d", "ient); /* L'utilisateur entre le nombre à convertir */
strcpy(binaire, ""); /* Déclaration chaîne vide afin de ne pas avoir de problèmes pour la concaténation */
do
{
resultant = quotient % 2; /* Obtention du reste */
quotient = quotient / 2; /* Obtention du numérateur suivant */
ltoa(resultant, reste, 10); /* Conversion du reste en chaine */
strcat(binaire, reste); /* Concaténation d'une partie de la chaîne bianaire avec le nouveau reste */