IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C++ Discussion :

petit problème de c++


Sujet :

C++

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre chevronné Avatar de mess-mate
    Inscrit en
    Septembre 2008
    Messages
    352
    Détails du profil
    Informations forums :
    Inscription : Septembre 2008
    Messages : 352
    Par défaut petit problème de c++
    Bonjour,
    j'ai le problème que ceci ne fonctionne pas comme il se doit:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    char base_bin[]="0111101100010100101011100100011111100001011110101001010000111111";
    int pos=strlen(base_bin)-1;
    int pos2=pos+1;
    while ( x < pos2 )
        {
           if(base_bin[pos] != '1')
           {
                x++;
                pos--;
           }
    cout << "bit = " << base_bin[pos] << " at pos = " << pos << endl;
    ce 'if...' déconne

  2. #2
    Membre très actif
    Avatar de buggen25
    Ingénieur développement logiciels
    Inscrit en
    Août 2008
    Messages
    554
    Détails du profil
    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Août 2008
    Messages : 554
    Par défaut
    salut,
    J'epère que c'est ça que tu cherches
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    #include <iostream>
    using namespace std;
    int main()
    {
    char base_bin[]="0111101100010100101011100100011111100001011110101001010000111111";
    int pos=strlen(base_bin)-1;
    int pos2=pos+1;
    int x=0;
    while ( x < pos2 )
        {
           if(base_bin[pos] != 49)
           {
                x++;
                pos--;
           }
         cout << "bit = " << base_bin[pos] << " at pos = " << pos <<  endl;
    }
    printf("%c",48);
    scanf("%d");
     
    return 0;
    }

  3. #3
    Membre chevronné Avatar de mess-mate
    Inscrit en
    Septembre 2008
    Messages
    352
    Détails du profil
    Informations forums :
    Inscription : Septembre 2008
    Messages : 352
    Par défaut
    merci pour la réponse, mais c'est pas bon non plus.
    C'est ce
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if(base_bin[pos] != '49')
    qui pose problème même en mettant '1' à la place de '49'.
    Il passe des '0'. J'ai donc aussi les '0' qui sont *parfois* pris en compte, alors que seul les '1' doivent être pris en compte.

  4. #4
    Membre très actif
    Avatar de buggen25
    Ingénieur développement logiciels
    Inscrit en
    Août 2008
    Messages
    554
    Détails du profil
    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Août 2008
    Messages : 554
    Par défaut
    Essaye ça , normalement 49 c'est 1 en code ascii
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    #include <iostream>
    using namespace std;
    int main()
    {
    unsigned char base_bin[65]="0111101100010100101011100100011111100001011110101001010000111111";
    int pos=strlen((const char*)base_bin)-1;
    int pos2=pos+1;
    int x=0;
    int i=49;
    while ( x < 63 )
        {
                unsigned char ch =  base_bin[pos];
                if ( ch == 49 )
                {
                cout << "bit = " << base_bin[pos] << " at pos = " << pos << endl;
                x++;
                pos--;
                }
     
       }
    printf("%c",48);
    scanf("%d");
     
    return 0;
    }
    Mes excuses pour l'erruer du poste précédent
    Cordialement;

  5. #5
    Membre chevronné Avatar de mess-mate
    Inscrit en
    Septembre 2008
    Messages
    352
    Détails du profil
    Informations forums :
    Inscription : Septembre 2008
    Messages : 352
    Par défaut
    Merci, mais à n'y rien comprendre...
    cette comparaison marche, mais j'ai toujours su qu'il fallait éviter des 'equal à'.
    la comparaison
    ne marche donc pas !

  6. #6
    Responsable 2D/3D/Jeux


    Avatar de LittleWhite
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2008
    Messages
    27 116
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Mai 2008
    Messages : 27 116
    Billets dans le blog
    148
    Par défaut
    Citation Envoyé par mess-mate Voir le message
    Merci, mais à n'y rien comprendre...
    cette comparaison marche, mais j'ai toujours su qu'il fallait éviter des 'equal à'.
    la comparaison
    ne marche donc pas !

    Perso , c'est la première fois que j'entends qu'il faut éviter les 'equal à'

    Et puis pour avoir un truc qui marche si tu modifie le test et que tu voulais qui marche de la même façon ... il faut au moins que le test fasse la même chose.
    Sauf que en faisant ton changement tu fais l'inverse ... de ce qu'il fesait avant.
    tu peux ecrire ça :
    et ça marchera comme avant ... mais c'est encore plus moche que :
    Vous souhaitez participer à la rubrique 2D/3D/Jeux ? Contactez-moi

    Ma page sur DVP
    Mon Portfolio

    Qui connaît l'erreur, connaît la solution.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. un petit problème d'algo
    Par supertramp dans le forum Algorithmes et structures de données
    Réponses: 22
    Dernier message: 12/10/2004, 20h13
  2. Petit problème de décimales !
    Par ridan dans le forum Langage SQL
    Réponses: 5
    Dernier message: 11/09/2004, 21h24
  3. Réponses: 17
    Dernier message: 13/07/2004, 20h37
  4. petit problème premier plan, arrière plan
    Par gros bob dans le forum OpenGL
    Réponses: 4
    Dernier message: 19/04/2004, 12h00
  5. [jointure] Petit problème sur le type de jointure...
    Par SteelBox dans le forum Langage SQL
    Réponses: 13
    Dernier message: 13/02/2004, 18h55

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo