begin process at 2012 02 11 22:55:39
  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

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

Membre Club
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' Calculatrice [ par sarazin66 ] Voila ma calculatrice , je cherche pleins de critique pour l'améliorer =D [^^langue3] voici ma source: [code=cpp][/code]#include #include #include exercices à résoudre [ par jomsow ] bonjour je suis débutant en C svp aidez moi à résoudre ces deux exercices : Exercice 1: Modifier le programme suivant de telle sorte qu’il affiche Affichage variables (printf) [ par dj_titeuf ] Bonjour, Ayant commencé à apprendre le langage C très récemment, j'ai pu voir (de façon partielle) l'utilisation de printf(). J'ai ainsi pu voir comm Choisir un mot au hasard dans un .txt [ par chounardinio ] Bonjour à tous, J'ai suivi un tutoriel pour créer mon tout premier jeu en C/C++ .Je suis en seconde ISI et j'ai choisit de montrer mon jeu comme exp convertir nombres en lettre [ par sofaranaya ] Bonsoir tout le monde! J'ai grand besoin d'une aide à propos d'un programme en c++. Voilà en ce moment je travaille sur un programme qui doit convert Problème de couleur dans tableau [ par hitachicm615 ] Bonjour,J'ai déclaré un tableau et pour le remplir par des croix ou des ronds j'ai tapé ceci dans un switchcase 1:                tab[0][5] = 'X';   Tri dans un tableau de structure [ par sonic1 ] Bonjour, ma question serait de savoir si on peut trier un tableau de structures de la même manière qu'un tableau simple. Voici un code ou j'essaie de triage du tableau [ par devamos ] bonsoir,s'il vous plait mes freres j'ai écri un petit programme qui tri un tableau de maniere croissante mais il ne veux plus marcher,,,,j'aimerais qu aide sur un prog [ par jsuititidu27 ] Bonjour, j'ai besoin d'un petit coup de main. ceci est un exo qui demande d'écrire un programme de tri de chaines de caractères. J'ai donc écrit le co


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

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 : 2,184 sec (3)

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