C exposant qui foire ...
Résolu
vautour88
-
vautour88 -
vautour88 -
Bonjour, j'ai une erreur dans ce programme qui est censé traduire un nombre binaire introduit par l utilisateur et lui ressortir ca valeur décimal.
J'ai une erreur "illegal use of floating point" à cette ligne
nbb+=(nb%pow(10,cpt))*(pow(2,cpt));
#include <stdio.h>
#include <conio.h>
#include <math.h>
void main (void)
{
int cpt, nb;
double nbb=0;
printf("entrez un nombre en binaire : ");
scanf("%d",&nb);
for(cpt=0;((nb/(pow(10,cpt)))>1) || ((nb/(pow(10,cpt)))==1);cpt++)
{
nbb+=(nb%pow(10,cpt))*(pow(2,cpt));
}
printf("\n %d egal en deci %.0f",nb,nbb);
getch();
}
merci a tous
J'ai une erreur "illegal use of floating point" à cette ligne
nbb+=(nb%pow(10,cpt))*(pow(2,cpt));
#include <stdio.h>
#include <conio.h>
#include <math.h>
void main (void)
{
int cpt, nb;
double nbb=0;
printf("entrez un nombre en binaire : ");
scanf("%d",&nb);
for(cpt=0;((nb/(pow(10,cpt)))>1) || ((nb/(pow(10,cpt)))==1);cpt++)
{
nbb+=(nb%pow(10,cpt))*(pow(2,cpt));
}
printf("\n %d egal en deci %.0f",nb,nbb);
getch();
}
merci a tous
Configuration: Windows Vista Internet Explorer 7.0
4 réponses
-
Whaou, c'est hyper compliqué. T'as vraiment besoin de tout ça ?
C'est une simple conversion d'entiers, je vois pas pourquoi ça doit passer par des float !!! -
Tu ne devrais utiliser que des int pour ça...
L'idée, au lieu de faire des puissances, c'est de diviser à chaque tour. -
-
Voici l'algo, je te laisse le coder :-)
Tu lis nbin (scanf) Tant que nbin > 0 chiffre = nbin modulo 10 ndec = (ndec * 2) + chiffre nbin = nbin / 10 Tant que fin
Quand on sort de la boucle, ndec contient ton nombre en décimal.
À noter : en C le modulo c'est l'opérateur %
N'oublie pas de vérifier que l'utilisateur ne rentre pas n'importe quoi.
-
-
l erreur est toujours presente
#include <stdio.h>
#include <conio.h>
#include <math.h>
void main (void)
{
int cpt, nb,nbb=0;
printf("entrez un nombre en binaire : ");
scanf("%d",&nb);
for(cpt=0;((nb/(pow(10,cpt)))>1) || ((nb/(pow(10,cpt)))==1);cpt++)
{
nbb+=(nb%pow(10,cpt))*(pow(2,cpt));
}
printf("\n %d egal en deci %d",nb,nbb);
getch();
}