begin process at 2010 02 09 23:37:49
  Trouver un code source :
 
dans
 
Accueil > Forum > 

C

 > 

Divers

 > 

Débutant(e)

 > 

Code qui ne marche pas


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Code qui ne marche pas

dimanche 28 mai 2006 à 21:17:42 | Code qui ne marche pas

darkwhite

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)
resultat= (tab[0] + tab[1] + tab[2] + tab[3]+ tab[4]+ tab[5]+ tab[6]+ tab[7])  ;
// affichage du resultat
printf("Le resultat est %d",resultat);
getchar();
return(0);    
}



or au moment de l'execution quelque soit la valeur des chiffres saisis  le programme retourne forcement 16
Je ne sais pas ce qui ne va pas donc si vous pouviez m'aidez sa serait sympa
merci d'avance
dimanche 28 mai 2006 à 23:33:05 | Re : Code qui ne marche pas

laurent1024

remplace          
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)
resultat= (tab[0] + tab[1] + tab[2] + tab[3]+ tab[4]+ tab[5]+ tab[6]+ tab[7])
par
resultat =0;
for(k=7;k>=0;k--)
{
    if(tab[k] == 1)
       resultat += pow(2,k);
}

ps : Le ?^ et l'operateur ou exclusif, alors que la je pense que c'est l'operateur puissance de 2 que tu as besoin (enfin je pense)
++
              
lundi 29 mai 2006 à 07:21:52 | Re : Code qui ne marche pas

darkwhite

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"

lundi 29 mai 2006 à 08:58:27 | Re : Code qui ne marche pas

laurent1024

Normalement c'est dans <math.h>

++
lundi 29 mai 2006 à 13:04:44 | Re : Code qui ne marche pas

deadbird

Regarde à tout hasard si cela ne viens pas d'un pb de cast.  
vendredi 2 juin 2006 à 16:23:25 | Re : Code qui ne marche pas

fauve

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


vendredi 2 juin 2006 à 17:31:58 | Re : Code qui ne marche pas

darkwhite

heu
1) Pourquoi ce strlen(tab) - 1
2) pourquoi ce   tab[i-2]
3) Comment utiliser la fonction atoi?
jeudi 13 juillet 2006 à 16:24:27 | Re : Code qui ne marche pas

eagleseyes

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"

Eagles Eyes


Cette discussion est classée dans : nombre, chiffres, printf, resultat, tab


Répondre à ce message

Sujets en rapport avec ce message

prob de virgule pour disision [ par stefbuet ] oui je sais c tt c** mais j'ai un trou de mémoire, car j'ai arrété le C pendant un pti moment et donc je me souvien plus trop d'un truc :pour faire l' Windows plante {je sais pas nouveau } pour l'execution du mon code [ par darkwhite ] Salut a tous Je debute en C, et j'ai commencer a faire un petit programme. A la moitié de la creation je l'essaie mé windows me sort un message derreu Additionner les chiffres d'un nombre [ par Loonis ] Bonjour à tous, Je recherche une méthode pour additionner les chiffres d'un nombre en c++, exemple 15 : 1+5=6 Merci. prob math [ par chinois57 ] g un prob pour faire les fonction cosinus, sinus,tangante, ansmerci de maider ma source est: #include #include #include main(){float x,y;char z; print Chaine de caractère [ par Thanatoster ] Bonjour a tous, mon problème est le suivant, pour les cours je dois faire un programme d'apres l'énoncé suivant"saisir au clavier des éléments chaine bitmap dans une fenetre DOS [ par chinois57 ] je voudrai ajouter une image dans mon programme est ce possible#include #include intmain(){   system ("MODE CON: cols=70 lines=40");   system ("TITLE aide [ par chinois57 ] comment faire fair ce prog dans une fenetre windows application#include #include intmain(){   system ("MODE CON: cols=70 lines=40");   system ("TITL [Débutant ] Créer une calculatrice [ par rockerguitar ] Bonsoir à tous !Je suis nouveau dans le monde de la programmation. J'ai commencé il y a 3 jours. Mon projet est de créer un jeu musical sur la Nintend projet gestion de personel [ par ahmeddrira ] drira ahmed svp les amis  aidez moi a c Probleme de fonction sur la bataille navale... [ par YASS_95 ] Bonjour à tous, Je travaille sur un projet qui est le jeu de la bataille navale et j'ai un petit probleme de fonctions... je vais vous expliquer. J'a


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Février 2010
LMMJVSD
1234567
891011121314
15161718192021
22232425262728

Consulter la suite du CalendriCode

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,905 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales