Binaire to decimal langage C [Résolu/Fermé]

Signaler
Messages postés
256
Date d'inscription
dimanche 21 février 2010
Statut
Membre
Dernière intervention
11 avril 2016
-
Messages postés
256
Date d'inscription
dimanche 21 février 2010
Statut
Membre
Dernière intervention
11 avril 2016
-
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.

5 réponses

Messages postés
11066
Date d'inscription
samedi 5 mai 2007
Statut
Contributeur
Dernière intervention
18 octobre 2016
1 736
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
Merci

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

CCM 63550 internautes nous ont dit merci ce mois-ci

Messages postés
11066
Date d'inscription
samedi 5 mai 2007
Statut
Contributeur
Dernière intervention
18 octobre 2016
1 736
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
Merci

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

CCM 63550 internautes nous ont dit merci ce mois-ci

Messages postés
256
Date d'inscription
dimanche 21 février 2010
Statut
Membre
Dernière intervention
11 avril 2016
2
Oui ça marche bien fiddy, merci bcp.
1
Merci

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

CCM 63550 internautes nous ont dit merci ce mois-ci

Messages postés
256
Date d'inscription
dimanche 21 février 2010
Statut
Membre
Dernière intervention
11 avril 2016
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();
}
Messages postés
256
Date d'inscription
dimanche 21 février 2010
Statut
Membre
Dernière intervention
11 avril 2016
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.