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 :

probleme au niveau du boucle !


Sujet :

C

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre actif
    Inscrit en
    Décembre 2010
    Messages
    77
    Détails du profil
    Informations forums :
    Inscription : Décembre 2010
    Messages : 77
    Par défaut probleme au niveau du boucle !
    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
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    #include<stdio.h>
    #include<stdlib.h>
    int main()
    {
        int i=0;
        int t[32];
        int T[32];
        int n;
        long itemset=0;
        long  p=1;
        int j,k=0;
        int l;
        long B[100]; 
        int m;
        for(k=1;k<32;t[k]=0,k++);
      do
       {
       printf("donnez le nombre d'identifiant");
       scanf("%d",&n);
       }
       while(n>33);
       for(i=0;i<n;i++)
       {
         printf("donnez un identifiant ");
         do
          scanf("%d",&j);
            while (j>32);
     
             t[j]=1;}
     
              for(k=31;k>(-1);k--)
              {  itemset+=(t[k]*p);
                  p*=2;
            }
     
    printf("ITEMSET EST %ld\n",itemset);
     
    do
        {
            printf("donner la longueur de la base");
            scanf("%d",&m);
        }
        while (m>100);
     
     
     
        for(l=0;l<m;l++)
            {
              printf("l'ensemble numeros : %d\n",l);
             for(k=1;k<32;T[k]=0,k++);
        do
       {
       printf("donnez le nombre d'identifiant");
       scanf("%d",&n);
       }
       while(n>33);
       for(i=0;i<n;i++)
       {
         printf("donnez un identifiant ");
         do
          scanf("%d",&j);
            while (j>32);
     
             T[j]=1;
     
             }
     
              for (k=31;k<(-1);k--)
              {  
                    B[l]+=(T[k]*p);
                     p*=2;
                   }
     
    printf("l'element de la base est  %ld\n",B[l]);
    }
    system("pause");
    return(0);
    }



    aidez moi de trouver le probleme s'il vous plait

  2. #2
    Expert confirmé
    Avatar de diogene
    Homme Profil pro
    Enseignant Chercheur
    Inscrit en
    Juin 2005
    Messages
    5 761
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Enseignant Chercheur
    Secteur : Enseignement

    Informations forums :
    Inscription : Juin 2005
    Messages : 5 761
    Par défaut
    Tu pourrais préciser où se trouve le problème : ce qui marche et à partir de quoi ça ne marche pas !

    Cette boucle ne sera jamais exécutée, la condition k<-1 n'est pas satisfaite pour la valeur d'initialisation 31.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
              for (k=31;k<(-1);k--)
              {  
                    B[l]+=(T[k]*p);
                     p*=2;
                   }

  3. #3
    Membre actif
    Inscrit en
    Décembre 2010
    Messages
    77
    Détails du profil
    Informations forums :
    Inscription : Décembre 2010
    Messages : 77
    Par défaut
    exactement au niveau de ce boucle reside le probleme
    alors comment je peux le corriger ?

  4. #4
    Membre actif
    Inscrit en
    Décembre 2010
    Messages
    77
    Détails du profil
    Informations forums :
    Inscription : Décembre 2010
    Messages : 77
    Par défaut
    oui je veux dire k>(-1)

  5. #5
    Membre actif
    Inscrit en
    Décembre 2010
    Messages
    77
    Détails du profil
    Informations forums :
    Inscription : Décembre 2010
    Messages : 77
    Par défaut
    meme si je modifie cette condition le programme ne s'execute pas!

  6. #6
    Membre expérimenté Avatar de quetzacoatl
    Profil pro
    Inscrit en
    Janvier 2011
    Messages
    168
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2011
    Messages : 168
    Par défaut
    bonsoir,

    pouvez vous donner un exemple d'xecution du programme?

  7. #7
    Expert confirmé

    Inscrit en
    Août 2006
    Messages
    3 971
    Détails du profil
    Informations forums :
    Inscription : Août 2006
    Messages : 3 971
    Par défaut
    Kao,

    Pour commencer, une présentation correcte du code (indentation régulière) le rend bien plus lisible.

    Pour savoir ce qui se passe, tu prends une feuille de papier + un crayon, et en suivant ton code, tu l'exécute manuellement (valeur de chaque variable, ...).

    Tu en apprendras beaucoup plus qu'en attendant qu'on fasse une partie de ton travail à ta place.

  8. #8
    Membre actif
    Inscrit en
    Décembre 2010
    Messages
    77
    Détails du profil
    Informations forums :
    Inscription : Décembre 2010
    Messages : 77
    Par défaut
    j'ai pas compris !

  9. #9
    Membre actif
    Inscrit en
    Décembre 2010
    Messages
    77
    Détails du profil
    Informations forums :
    Inscription : Décembre 2010
    Messages : 77
    Par défaut
    moi j'ai divisé le travail en 2 fonctions separées les 2 s'executent mais lorsque je les met dans le meme programme il ya un probleme au niveau du dernier boucle , les resultats qu'il retourne sont faux
    j'ai pas compris j'ai essayé hier et encore aujourd'huit mais en vein

  10. #10
    Expert confirmé
    Avatar de diogene
    Homme Profil pro
    Enseignant Chercheur
    Inscrit en
    Juin 2005
    Messages
    5 761
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Enseignant Chercheur
    Secteur : Enseignement

    Informations forums :
    Inscription : Juin 2005
    Messages : 5 761
    Par défaut
    moi j'ai divisé le travail en 2 fonctions separées les 2 s'executent mais lorsque je les met dans le meme programme
    Le programme que tu as montré ne comporte pas deux fonctions !
    les resultats qu'il retourne sont faux
    La moindre des choses est d'expliquer ce que le programme devrait faire, de donner un exemple du résultat attendu et du résultat obtenu.

  11. #11
    Membre actif
    Inscrit en
    Décembre 2010
    Messages
    77
    Détails du profil
    Informations forums :
    Inscription : Décembre 2010
    Messages : 77
    Par défaut
    je m'excuse car j'ai pas bien expliquer!
    ce que je veux dire : c'est la premiere fonction :

    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
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    #include<stdio.h>
    #include<stdlib.h>
    int main()
    {
        long p=1;
       int i=0;
       int j,k;
       int t[32]={0};
       int n;
       long  itemset=0;
        for(k=1;k<32;t[k]=0,k++);
      do
       {
       printf("donnez le nombre d'identifiant");
       scanf("%d",&n);
       }
       while(n>33);
       for(i=0;i<n;i++)
       {
         printf("donnez un identifiant ");
         do
          scanf("%d",&j);
            while (j>32);
     
             t[j]=1;}
     
              for(k=31;k>(-1);k--)
              {  itemset+=(t[k]*p);
                  p*=2;
            }
     
    printf("ITEMSET EST %ld\n",itemset);
    system("pause");
    return(0);
    }

    et voilà la deuxieme fonction :

    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
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    #include<stdio.h>
    #include<stdlib.h>
    int main()
    {
        long p=1;
        int i=0;
        int j,k=0;
        int t[32]={0};
        int l,n;
        int B[100]; 
        int m;
        do
        {
            printf("donner la longueur de la base");
            scanf("%d",&m);
        }
        while (m>100);
     
     
            for(l=0;l<m;l++)
            {
             printf("l'ensemble numeros : %d\n",l);
             for(k=1;k<32;t[k]=0,k++);
        do
       {
       printf("donnez le nombre d'identifiant");
       scanf("%d",&n);
       }
       while(n>33);
       for(i=0;i<n;i++)
       {
         printf("donnez un identifiant ");
         do
          scanf("%d",&j);
            while (j>32);
     
             t[j]=1;}
             B[0]=0;
            for (k=31;k>(-1);k--)
              {  B[l]+=(t[k]*p);
                  p*=2;
            }
    printf("l'element de la base est  %ld\n",B[l]);
    }
    system("pause");
    return(0);
    }

    ce que retourne la 1ere fonction c'est un entier long nommé itemset calculer à partie de la convertion de la tableau de bits dejà saisi
    la 2eme fonction c'est de saisir au moins 100 ensembles pour chaque ensemble on va refaire le meme travail dejà fait pour l'itemset
    le 100 ensembles forment la base donc "l'itemst" de chaque ensemble on va le considerer comme etant un element de la base tous vont etre stocker dans un tableau

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

Discussions similaires

  1. [MySQL] Probleme au niveau du code, j'ai l'impression que rien ne sort de la boucle WHILE.
    Par bilou95 dans le forum PHP & Base de données
    Réponses: 4
    Dernier message: 18/12/2007, 14h51
  2. probleme d'include en boucle
    Par narkotik dans le forum C++
    Réponses: 3
    Dernier message: 17/01/2006, 08h53
  3. probleme de syntaxe et boucle while
    Par ben23 dans le forum Général JavaScript
    Réponses: 13
    Dernier message: 13/01/2006, 18h04
  4. [Thread] petit problème au niveau du reveil d'un thread
    Par sagitarium dans le forum Concurrence et multi-thread
    Réponses: 3
    Dernier message: 13/01/2006, 11h35
  5. PROBLEME haut niveau BACKUP
    Par Dev_Michael dans le forum Administration
    Réponses: 7
    Dernier message: 10/03/2005, 15h32

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