cs_darkwhite
Messages postés133Date d'inscriptionvendredi 17 novembre 2000StatutMembreDernière intervention29 avril 2008
-
28 mai 2006 à 21:17
EaglesEyes
Messages postés33Date d'inscriptionvendredi 23 avril 2004StatutMembreDernière intervention27 février 2008
-
13 juil. 2006 à 16:24
Salut a tous .
Je suis debutant en C et j'ai commencé un programme qui converti un nombre binaire de huit chiffres en un nombres decimal
le code est le suivant:
#include <stdio.h>
#include <math.h>
int main ()
{
int resultat;
int i,j,k,l=0;
int tab[8];
printf(".:Conversion D'un nombre Binaire en decimal:.\n\n");
getchar();
printf("Saisissez un nombre de huit chiffre, chaque chiffre est soit 0 soit 1\n\n");
/*on saisie les huit chiffres du nombre a convertir */
for (i=0;i<=7;i++)
{printf("Numero %d:",i);
scanf("%d",&tab[i]);}
/*Les chiffres sont dans le tableau*/
/*Affichage, des chiffres saisis a l'utilisateur*/
printf("Vous avez saisi le nombre : " );
for (j=0;j<=7;j++)
{printf ("%d\n",tab[j]);
getchar();
}
/*Operation sur les nombres du tableau*/
for (k=0;k<=7;k++)
{
for(l=7;l>=0;l--)
{tab[k]=2^l;
}
}
// Adittion des nombres du tableau (mode bourin a revoir)
cs_darkwhite
Messages postés133Date d'inscriptionvendredi 17 novembre 2000StatutMembreDernière intervention29 avril 2008 29 mai 2006 à 07:21
Merci pour ton aide mais il faut declarer des bibiotheque particuliere
pour utiliser la fonction pow ? car moi j'ai un message d'erreur pour
la compilation :"undefinided reference to pow"
cs_fauve
Messages postés661Date d'inscriptionvendredi 2 décembre 2005StatutMembreDernière intervention23 mars 20118 2 juin 2006 à 16:23
Salut
tu devrais essayer d'utiliser atoi, mais ton tableau ne devra plus être de type int mais de type char
pour stocker plusieurs caractères dans un tableau de type char : voici le code
int i;
char tab[10];
tab[0] = 8; /* Permet de fixer le nombre de caractères maxi que cgets va accepter ici 8 */
cgets(tab); /* particularité de cgets, il te rends ce que tu as tapé
mais avec 2 symboles bizarres juste avant. La boucle for qui suit
permet de les supprimer */
for ( i = 0 ; i < strlen(tab) - 1 ; i++ ) /* srtlen permet d'obtenir la longueur de ton tableau */
tab[i-2] = tab[i];
Il ne reste plus qu'à utiliser la fonction atoi, elle convertit un
tableau de type char en entier dans la base spécifiée ( pour ton
programme, ce sera 10 )
Si il y a quelque chose que tu ne comprends, n'hésite pas à laisser un message sur le forum...
EaglesEyes
Messages postés33Date d'inscriptionvendredi 23 avril 2004StatutMembreDernière intervention27 février 2008 13 juil. 2006 à 16:24
Moi j'aurais mis "strlen(tab)" et non pas "strlen(tab)-1" puisque "strlen(tab)" te donnes la taille max du tableau donc les indices allant de "0" à "TailleMax -1" si tu utilises "strlen(tab) - 1" il te manquera un case...
Le "tab[i-2]" posera un probleme car "i" commençant à 0 si tu fait "i-2" tu taperas dans la case -2 du tableau => Erreur de segmentation...
Voici le prototype de la fonction "atoi":
int atoi(char *)
en gros tu lui passe une chaine de caractere et il te retourne un la valeur décimal de la chaine s'il la reconnait (présence uniquement de chiffre) sinon elle retournera "0"