Binaire to decimal langage C

Résolu
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. Contributeur
    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
    1. Contributeur
      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
      1. Oui ça marche bien fiddy, merci bcp.
        1
        1. 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
          1. 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