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. 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
        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