2013-06-14 10 views
0

Quel est le problème avec mon code quelqu'un m'aider plz. Il s'agit d'une conversion décimale en binaire. Selon mon code, la sortie sera de 2 pour 10, 3 pour 11 mais la sortie ajoute toujours la dernière valeur à la fin comme pour 3 elle montre 1110, ajoute la sortie précédente. Qu'est-ce que je devrais faire maintenant ? aidez-moi plz?Sortie de conversion décimal en binaire

#include<iostream> 
#include<stdio.h> 
using namespace std; 

int main(){ 

    long int decimalNumber,quotient; 

    int binaryNumber[100],i=0,j; 

    printf("Enter any decimal number: "); 

    //scanf_s("%ld",&decimalNumber); 
    while(scanf_s("%ld",&decimalNumber)==1) 
    { 

      quotient = decimalNumber; 

      while(quotient!=0){ 
      binaryNumber[i++]= quotient % 2; 
      quotient = quotient/2; 
      } 

      printf("Equivalent binary value of decimal number %d: ",decimalNumber); 

      for(j = i -1 ;j>= 0;j--) 
       printf("%d",binaryNumber[j]); 
      printf("\n"); 
      printf("Enter any decimal number: "); 
    } 
    return 0; 
} 
+1

indentez votre code. –

+1

Avez-vous essayé de le déboguer? – MarsRover

Répondre

5

Vous devez initialiser au début i de chaque boucle

while(scanf_s("%ld",&decimalNumber)==1) 
{ 
    i = 0; 

Sans cela, vous ajoutez chaque nouveau numéro à la fin de la dernière, en répétant jusqu'à ce que vous écrivez au-delà de la fin de binaryNumber.

+0

merci mec. Oui ça marche. Erreur idiote :) –

+0

Heureux qui a aidé. Si votre problème est maintenant résolu, n'hésitez pas à [accepter] (http://meta.stackexchange.com/q/5234) ma réponse :-) – simonc