Binaire to decimal langage C

Résolu
amine_marc Messages postés 286 Statut Membre -  
amine_marc Messages postés 286 Statut Membre -
salut,
Est ce que qq'un peut m'aider à convertir ce programme en langage C de C++:

#include<iostream.h>
#include<conio.h>
#include<string.h>

main()
{
char rep;
int bin,c1,c2,c3,c4,c5,dec;
do{
clrscr();
cout<<"Entrer le nombre en binaire: ";
cin>>bin;

c1=bin / 10000;
c2=(bin % 10000) / 1000;
c3=(bin % 1000) / 100;
c4=(bin % 100) / 10;
c5=bin % 10;

dec=c5+c4*2+c3*4+c2*8+c1*16;

cout<<"Le décimale de ce nombre est = "<<dec;
cout<<"\n \n Autre conversion?(O/N) ";
cin>>rep;
}while(rep=='o' || rep=='O');
cout<<"\n \n **** Merci **** ";
}

merci d'avance.
Configuration: Windows Vista / Firefox 3.6

5 réponses

  1. fiddy Messages postés 441 Date d'inscription   Statut Contributeur Dernière intervention   1 847
     
    Bonjour,
    Poste ta solution qu'on puisse t'aider à corriger.
    Ce n'est pas très dur, il suffit de remplacer les cout par des printf et les cin par des scanf (ou mieux getchar).
    Le prototype de main sans argument est : int main(void).
    Et n'oublie pas le return 0; final.
    Bien sûr à la place de iostream.h, il te faudra mettre stdio.h
    Cdlt,
    1
  2. fiddy Messages postés 441 Date d'inscription   Statut Contributeur Dernière intervention   1 847
     
    printf("%d",&dec);
    Ici tu affiches l'adresse mémoire de dec. Il faut mettre : printf("%d",dec);

    return 0;
    getch();

    Ton getch() ne sert à rien puisqu'il est situé après le return 0.
    Soit tu le mets avant (et ce n'est pas très portable), soit tu l'enlèves.

    Cdlt,
    1
  3. amine_marc Messages postés 286 Statut Membre 2
     
    Oui ça marche bien fiddy, merci bcp.
    1
  4. amine_marc Messages postés 286 Statut Membre 2
     
    merci fiddy, j'ai essayé de faire la conversion, mais le programme apres l'execussion ne donne que des 0.000 comme resultat, voici le programme c que j'ai fais:

    #include<stdio.h>
    #include<conio.h>
    #include<string.h>

    int main(void)
    {
    char rep;
    int bin,c1,c2,c3,c4,c5,dec;
    do{
    clrscr();
    printf("Entrer le nombre en binaire: ");
    scanf("%f",&bin);

    c1=bin / 10000;
    c2=(bin % 10000) / 1000;
    c3=(bin % 1000) / 100;
    c4=(bin % 100) / 10;
    c5=bin % 10;

    dec=c5+c4*2+c3*4+c2*8+c1*16;

    printf("Le décimale de ce nombre est = ");
    printf("%f",&dec);
    printf("\n \n Autre conversion?(O/N) ");
    scanf("%c",&rep);

    }
    while(rep=='o' || rep=='O');
    printf("\n \n **** Merci **** ");
    return 0;
    getch();
    }
    0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. amine_marc Messages postés 286 Statut Membre 2
     
    j'ai fait encore autres modification, mais cette fois, il s'affiche 7234:
    voici le code :

    #include<stdio.h>
    #include<conio.h>

    int main()
    {

    int bin,c1,c2,c3,c4,c5,dec;

    printf("Entrer le nombre en binaire: ");
    scanf("%d",&bin);

    c1=bin / 10000;
    c2=(bin % 10000) / 1000;
    c3=(bin % 1000) / 100;
    c4=(bin % 100) / 10;
    c5=bin % 10;

    dec=c5+c4*2+c3*4+c2*8+c1*16;

    printf("Le décimale de ce nombre est = ");
    printf("%d",&dec);

    return 0;
    getch();
    }
    Est ce que vous pouurrez me dire la solution? Merci.
    0