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 :

mon programme bloque


Sujet :

C

  1. #1
    Nouveau membre du Club
    Femme Profil pro
    Enseignant
    Inscrit en
    Août 2012
    Messages
    71
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2012
    Messages : 71
    Points : 35
    Points
    35
    Par défaut mon programme bloque
    bonsoir;

    le programme bloque lors du remplissage (il boucle plusieurs fois)

    je ne sais pa ou il est le probléme

    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
    #include<stdbool.h>
    #include <stdio.h>
    #include <stdlib.h>
     
     
    bool test_inclu(int i, int j)
    {
         //bool ex=true; 
         int k=1;
         int s[30][30],c,l;
         do {
             if ((s[i][k]==0) && (s[j][k]==1))
             {
                              return false;
             }
     
             else
             {
                 return true;
             }
               k=k+1;  
            }
            while ((k<=c) && (true));
     
            //test_inclu=ex;
            return test_inclu(i,j);
    }
     
     
     
    int main(int argc, char *argv[])
    {
        int s[30][30],i,j,k,l,c;
        printf("entrer le nbr de lignes:\t");
        scanf("%d", &l);
        printf("entrer le nbr de colonne:\t");
        scanf("%d", &c);
     
        for(i=0;i<l;i++)
        {
                        for(j=0;j<c;j++)
                        {
                                          printf("element s[%d][%d] est:\t",i,j);
                                          scanf("%d",&s[i][j]);
                        }
        }
     
        for(i=0;i<l;i++)
        {
                        for(j=i+1;j<c;j++)
                        { 
                                          test_inclu(i, j);
                        }
     
        }
     
     
     
     
     
     
     
     
      system("PAUSE");	
      return 0;
    }

  2. #2
    Rédacteur/Modérateur


    Homme Profil pro
    Network game programmer
    Inscrit en
    Juin 2010
    Messages
    7 115
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : Canada

    Informations professionnelles :
    Activité : Network game programmer

    Informations forums :
    Inscription : Juin 2010
    Messages : 7 115
    Points : 32 965
    Points
    32 965
    Billets dans le blog
    4
    Par défaut
    C'est pas évident de trouver une ligne sans erreur...
    s,c,l non initialisés, test_inclu qui s'appelle elle-même - mais pas vraiment vu que le code est inaccessible -, if( X && true), un return dans if et else dans une boucle do while. Et ce n'est que la première fonction que l'on lit.
    Pensez à consulter la FAQ ou les cours et tutoriels de la section C++.
    Un peu de programmation réseau ?
    Aucune aide via MP ne sera dispensée. Merci d'utiliser les forums prévus à cet effet.

  3. #3
    Nouveau membre du Club
    Femme Profil pro
    Enseignant
    Inscrit en
    Août 2012
    Messages
    71
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2012
    Messages : 71
    Points : 35
    Points
    35
    Par défaut
    j'i fais quelque modification, il s'exécute mais le résultat de l'exécution est fausse

    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
    #include<stdbool.h>
    #include <stdio.h>
    #include <stdlib.h>
     
     
    bool test_inclu(int i, int j)
    {
         //bool ex=true; 
         int k=0;
         int s[30][30];
         do {k=k+1;
     
             if ((s[i][k]==0) && (s[j][k]==1))
             {
                              return false;
             }
     
             else
             {
                 return true;
                 //k=k+1;
             }
     
            }
            while ((k<=6) && (true));
     
            //test_inclu=ex;
            //printf( test_inclu(i,j));
    }
     
     
     
    int main(int argc, char *argv[])
    {
        int s[30][30],i,j,k;
        //printf("entrer le nbr de lignes:\t");
        //scanf("%d", &l);
        //printf("entrer le nbr de Colonne:\t");
        //scanf("%d", &c);
     
        for(i=0;i<3;i++)
        {
                        for(j=0;j<6;j++)
                        {
                                          printf("element s[%d][%d] est:\t",i,j);
                                          scanf("%d",&s[i][j]);
                        }
        }
     
     
        for(i=0;i<2;i++)
        {
                        for(j=i+1;j<3;j++)
                        { 
                                          //printf(" s[%d][%d]=%d",s[i][j]);
                                          printf("%d", test_inclu(i,j));
                        }
     
        }
     
     
      system("PAUSE");	
      return 0;
    }

  4. #4
    Membre éclairé
    Homme Profil pro
    Architecte de système d'information
    Inscrit en
    Septembre 2015
    Messages
    204
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Architecte de système d'information

    Informations forums :
    Inscription : Septembre 2015
    Messages : 204
    Points : 839
    Points
    839
    Par défaut
    Bousk t'a donné un début de piste !

    ta fonction test_inclu est à revoir :
    - variable s non initialisée
    - boucle do.. while qui ne fera rien, puisqu'à l'intérieur le 1er passage fera un return

  5. #5
    Expert éminent sénior
    Avatar de Sve@r
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2006
    Messages
    12 684
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 12 684
    Points : 30 973
    Points
    30 973
    Billets dans le blog
    1
    Par défaut
    Bonjour

    En plus des autres remarques, il n'y a aucun lien entre le tableau "s" qui se trouve dans la fonction test_inclu() et le tableau "s" qui se trouve dans le main(). Hé oui, force du C, les variables situées dans un bloc ne sont connues que dans le bloc, ce qui permet de ne pas se préoccuper de savoir si tel nom de variable n'a pas été utilisé ailleurs.

    Ensuite question algo, chercher une valeur dans un tableau c'est boucler sur chaque élément du tableau et sortir si l'élément correspond, mais c'est aussi ne pas sortir si l'élément ne correspond pas afin de pouvoir ensuite tester le suivant.

    Et enfin question mathématiques booléennes, une évaluation "bool et vrai" équivaut à "bool" (le "et vrai" n'apporte rien, tout comme le "* 1" n'apporte rien à la multiplication)

    PS: t'es vraiment enseignant ??? Rassure moi, t'es pas enseignant en informatique...
    Mon Tutoriel sur la programmation «Python»
    Mon Tutoriel sur la programmation «Shell»
    Sinon il y en a pleins d'autres. N'oubliez pas non plus les différentes faq disponibles sur ce site
    Et on poste ses codes entre balises [code] et [/code]

  6. #6
    Nouveau membre du Club
    Femme Profil pro
    Enseignant
    Inscrit en
    Août 2012
    Messages
    71
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2012
    Messages : 71
    Points : 35
    Points
    35
    Par défaut
    j'ai fais des modifications dans le type de la fonction test_inclu()
    mais il y a un problème entre le tableau s qui se trouve dans la fonction test_inclu() et le tableau "s" qui se trouve dans le main()

    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
     
     
    #include <stdio.h>
    #include <stdlib.h>
    #define false 0
    #define true 1
     
     
    int test_inclu(int i, int j)
    {
     
         int k;
         int s[30][30],c,l;
     
         for(k=0;k<6;k++)
         {
             printf("a=%d",s[i][k]);
             if ((s[i][k]==0) && (s[j][k]==1))
     
                   {
                              return 0;
     
                    }
     
             else
             {
                 return 1;
     
             }
     
                 }           
    }                      
     
    int main(int argc, char *argv[])
    {
        int s[30][30],i,j,k,l,c,a,b;
     
        for(i=0;i<3;i++)
        {
                        for(j=0;j<6;j++)
                        {
                                          printf("element s[%d][%d] est:\t",i,j);
                                          scanf("%d",&s[i][j]);
     
                        }
        }
     
     
        for(i=0;i<2;i++)
        {
                        for(j=i+1;j<3;j++)
                        { 
                                          if (test_inclu(i,j))
                                          printf("true");
                                          else
                                          printf("false");
     
                        }
     
        }
     
     
      system("PAUSE");	
      return 0;
    }

  7. #7
    Expert éminent sénior
    Avatar de Sve@r
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2006
    Messages
    12 684
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 12 684
    Points : 30 973
    Points
    30 973
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par lynaranya Voir le message
    j'ai fais des modifications dans le type de la fonction test_inclu()
    Oui, enfin tant que tu sortiras systématiquement à la première itération, ça ne marchera pas mieux.

    Citation Envoyé par lynaranya Voir le message
    mais il y a un problème entre le tableau s qui se trouve dans la fonction test_inclu() et le tableau "s" qui se trouve dans le main()
    Oui, c'est effectivement ce que j'ai dit donc ce n'est pas en le redisant que ça fera avancer les choses (à moins que tu penses qu'un autre intervenant vienne ici lire le dernier post sans lire ce qui'il y a avant et te donne la solution). La solution c'est à toi de la trouver. Et si je ne te l'ai pas donnée, c'est parce que tu es capable de la trouver tout seul. Enfin c'est pas compliqué quoi, comment tu fais pour que test_inclu() connaisse "i" et "j" ? Ben c'est la même chose !!!
    Mon Tutoriel sur la programmation «Python»
    Mon Tutoriel sur la programmation «Shell»
    Sinon il y en a pleins d'autres. N'oubliez pas non plus les différentes faq disponibles sur ce site
    Et on poste ses codes entre balises [code] et [/code]

  8. #8
    Nouveau membre du Club
    Femme Profil pro
    Enseignant
    Inscrit en
    Août 2012
    Messages
    71
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2012
    Messages : 71
    Points : 35
    Points
    35
    Par défaut
    je crois qu'il faut ajouter la table s dans les paramètres d'entrées de la fonction test_inclu() comme ceci:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    int test_inclu(int i, int j, int s[i][j])
    et pour l'appel:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    for(i=0;i<2;i++)
        {
                        for(j=i+1;j<3;j++)
                        { 
                                          if (test_inclu(i,j,s[i][j]))
                                          printf("true");
                                          else
                                          printf("false");
     
                        }
     
        }
        ]
    mais l'éxecution bloque apres le remplissage du tableau

  9. #9
    Nouveau membre du Club
    Femme Profil pro
    Enseignant
    Inscrit en
    Août 2012
    Messages
    71
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2012
    Messages : 71
    Points : 35
    Points
    35
    Par défaut
    j'ai ajouter la table s[30][30] dans la déclaration de la fonction et s dans l'appel de la fonction comme ceci

    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
     
     
    #include <stdio.h>
    #include <stdlib.h>
    #define false 0
    #define true 1
     
     
    int test_inclu(int i, int j, int s[30][30])
    {
     
         int k;
     
         for(k=0;k<6;k++)
         {
             if ((s[i][k]==0)&& (s[j][k]==1))
     
                   {
     
                              return 0;
     
                    }
     
             else
             {
                 return 1;
     
             }
     
         } 
     
     
    }                      
     
    int main(int argc, char *argv[])
    {
        int s[30][30],i,j,k;
     
     
        for(i=0;i<3;i++)
        {
                        for(j=0;j<6;j++)
                        {
                                          printf("element s[%d][%d] est:\t",i,j);
                                          scanf("%d",&s[i][j]);
     
                        }
        }
     
     
        for(i=0;i<2;i++)
        {
                        for(j=i+1;j<3;j++)
                        { 
                                          if (test_inclu(i,j,s))
                                          printf("true");
                                          else
                                          printf("false");
     
                        }
     
        }
     
     
      system("PAUSE");	
      //return 0;
    }
    mais la variable k ne s'incrémente pas

  10. #10
    Membre du Club
    Homme Profil pro
    Ingénieur Système
    Inscrit en
    Novembre 2019
    Messages
    17
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Mayenne (Pays de la Loire)

    Informations professionnelles :
    Activité : Ingénieur Système

    Informations forums :
    Inscription : Novembre 2019
    Messages : 17
    Points : 42
    Points
    42
    Par défaut
    Dans la boucle de ta fonction, tu fais test avec un return. k ne s'incrémentera jamais car tu sortiras dès le 1er passage dans la boucle...

  11. #11
    Membre régulier
    Homme Profil pro
    Autres
    Inscrit en
    Août 2008
    Messages
    39
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Autres

    Informations forums :
    Inscription : Août 2008
    Messages : 39
    Points : 82
    Points
    82
    Par défaut
    Beaucoup de choses moche dans ton code.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
     
    for(i=0;i<3;i++) // Je te rajoute cette ligne pour que tu constates mon interrogation du dessous
     
    for(j=i+1;j<3;j++) // tu es sur !!!
    edit : ta fonction est mal penser, elle est écrite pour un renvoi sur un test unitaire, hors tu t'attends à de multiples tests dans ta fonction à cause de ta boucle interne qui ne sert à rien, puisque tu sors lors d'un seul test

    Pour que tu comprennes, ta fonction actuel est équivalente à ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    int test_inclu(int i, int j, int s[][30])
    {
     
      int k = 0;
     
      if((s[i][k] == 0) && (s[j][k] == 1))
        return 0;
     
      return 1;
    }
    Tu as pas répondu à la question plus haut, tu es vraiment prof ?

  12. #12
    Expert éminent sénior
    Avatar de Sve@r
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2006
    Messages
    12 684
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 12 684
    Points : 30 973
    Points
    30 973
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par lynaranya Voir le message
    mais la variable k ne s'incrémente pas

    Citation Envoyé par AznarAkeba Voir le message
    Dans la boucle de ta fonction, tu fais test avec un return. k ne s'incrémentera jamais car tu sortiras dès le 1er passage dans la boucle...
    Donc voilà. Ca fait 3 personnes qui te disent la même chose, chacune employant sa propre tournure de phrase pour exprimer l'idée que si tu écris return dans le "if" et aussi dans le "else" fera que le return se produira dans tous les cas.

    Donc maintenant
    • soit tu ne comprends pas le principe d'un if/else
    • soit tu ne comprends pas l'action d'un return
    • soit tu ne comprends pas l'implication qu'il y a entre "sortir d'une fonction quand on est dans la boucle" et "sortir de la boucle"
    • soit tu n'as vraiment pas envie de réfléchir


    Dans tous les cas, mis à part réécrire cette fonction nous-même (ce qui n'est pas notre rôle), on ne peut rien faire de plus.
    Mon Tutoriel sur la programmation «Python»
    Mon Tutoriel sur la programmation «Shell»
    Sinon il y en a pleins d'autres. N'oubliez pas non plus les différentes faq disponibles sur ce site
    Et on poste ses codes entre balises [code] et [/code]

  13. #13
    Nouveau membre du Club
    Femme Profil pro
    Enseignant
    Inscrit en
    Août 2012
    Messages
    71
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2012
    Messages : 71
    Points : 35
    Points
    35
    Par défaut
    correction du code

    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
    #include<stdbool.h>
    #include <stdio.h>
    #include <stdlib.h>
    #define false 0
    #define true 1
     
    int test_inclu(int i, int j, int s[30][30])
    {  
         int k,l;
         k=0;
         l=0;
         //for(k=0;k<6;k++)
         do
         {
             //printf("a=%d",s[i][k]);
             if ((s[i][k]==0)&& (s[j][k]==1))
     
                   {
     
     
                              l=0;
                              printf(" ii=%d\t, jj=%d\t, kk=%d\t, ll=%d\t",i,j,k,l);
                              printf("\n");
                    }
             else
             {
     
                 l=1;
                 printf(" i=%d,j=%d , k=%d, l=%d",i,j, k,l);
                 printf("\n");
                 k=k+1;
             }    
         } while ((k<=6) &&(l==1));
    }                      
    int main(int argc, char *argv[])
    {
        int s[30][30],i,j,k,l,c,a,b;
        bool B;
     
        for(i=0;i<3;i++)
        {
                        for(j=0;j<6;j++)
                        {
                                          printf("element s[%d][%d] est:\t",i,j);
                                          scanf("%d",&s[i][j]);
                        }
        }
        for(i=0;i<2;i++)
        {
                        for(j=i+1;j<3;j++)
                        { 
                                          if (test_inclu(i,j,s)==1)
                                          {
                                          B=false;
                                          printf("B=%d \n", B);
                                          }
                                          else
                                          {
                                          B=true;
                                          printf("B=%d \n",B);
                                          }
     
                        }   
        }
      system("PAUSE");	
      //return 0;
    }

  14. #14
    Membre régulier
    Homme Profil pro
    Autres
    Inscrit en
    Août 2008
    Messages
    39
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Autres

    Informations forums :
    Inscription : Août 2008
    Messages : 39
    Points : 82
    Points
    82
    Par défaut
    Ta fonction ne renvoi plus rien du coup. Tu l'utilises pourtant dans un test qui ne sert plus à rien.

    Je peux pas tester, mais visiblement ton compilateur n'a pas les options qu'il faut pour laisser passer tout ça.

    Variable qui sert à rien et aucun retour de ta fonction principal main.

  15. #15
    Rédacteur/Modérateur


    Homme Profil pro
    Network game programmer
    Inscrit en
    Juin 2010
    Messages
    7 115
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : Canada

    Informations professionnelles :
    Activité : Network game programmer

    Informations forums :
    Inscription : Juin 2010
    Messages : 7 115
    Points : 32 965
    Points
    32 965
    Billets dans le blog
    4
    Par défaut
    Donc on passe d'une fonction qui retourne toujours au mauvais moment à une fonction qui retourne jamais...
    Tu codes au lancer de dé ?
    Tu essayes de compiler ce que tu postes ?
    Active un peu de warnings (-wall -wextra), le compilo doit avoir un paquet d'insultes en arrière-plan!
    Pensez à consulter la FAQ ou les cours et tutoriels de la section C++.
    Un peu de programmation réseau ?
    Aucune aide via MP ne sera dispensée. Merci d'utiliser les forums prévus à cet effet.

  16. #16
    Nouveau membre du Club
    Femme Profil pro
    Enseignant
    Inscrit en
    Août 2012
    Messages
    71
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2012
    Messages : 71
    Points : 35
    Points
    35
    Par défaut
    mon but c'est de retourner true (si un vecteur est un sous ensemble d'un autre) ou false (dans le cas contraire)
    je voulais au début créer une fonction de type booleen
    mais en c, il n'y a pas de booleen.
    on utilise des entiers où 0 est faux et n'importe quoi d'autre est vrai.
    pour cela j'ai créer une fonction qui retourne un entier, 0 (si un vecteur n'est pas inclue dans un autre) et 1(sinon)

    ma fonction ma retourné 0( dans le cas où un vecteur n'est pas inclue dans un autre) et 1(sinon)

  17. #17
    Expert éminent sénior
    Avatar de Sve@r
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2006
    Messages
    12 684
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 12 684
    Points : 30 973
    Points
    30 973
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par lynaranya Voir le message
    correction du code
    Ouais, là la fonction ne retourne plus rien du tout. Tu sais, c'est pas parce que ça ne marche pas avec 2 return que ça marchera 2 fois mieux si tu les enlèves !!!

    Reprends les bases: que dois faire cette fonction ? Trouver un truc dans un tableau.
    Donc tu balayes le tableau élément par élément. Si tu trouves le truc dans la boucle là tu retournes ce que tu as trouvé.

    Et en fin de boucle, si t'arrives jusque là c'est que t'as pas trouvé donc là tu retournes "pas trouvé".
    Mon Tutoriel sur la programmation «Python»
    Mon Tutoriel sur la programmation «Shell»
    Sinon il y en a pleins d'autres. N'oubliez pas non plus les différentes faq disponibles sur ce site
    Et on poste ses codes entre balises [code] et [/code]

  18. #18
    Nouveau membre du Club
    Femme Profil pro
    Enseignant
    Inscrit en
    Août 2012
    Messages
    71
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2012
    Messages : 71
    Points : 35
    Points
    35
    Par défaut
    je dois retourné soit true ou false, c'est pour ça j'ai pensé a utiliser la variable L qui retourne sois 0 ou 1 et dans l'appel de la fonction j'ai fais un appel selon le résulta de la variable l
    voici le résultat de l'execution:

    Nom : execution.png
Affichages : 179
Taille : 12,8 Ko

    par la suite je dois faire un test sur la variable B

  19. #19
    Expert éminent sénior
    Avatar de Sve@r
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2006
    Messages
    12 684
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 12 684
    Points : 30 973
    Points
    30 973
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par lynaranya Voir le message
    je dois retourné soit true ou false, c'est pour ça j'ai pensé a utiliser la variable L qui retourne sois 0 ou 1 et dans l'appel de la fonction j'ai fais un appel selon le résulta de la variable l
    Ouais super. On le sait bien tous qu'une fonction qui vérifie si une chose est ou n'est pas renverra fatalement true ou false. Et de même tous nous savons qu'en C, true et false n'existant pas on utilise à la place "0" ou "autre chose". Ce sera quoi la suite ? Tu viendras nous dire que tu utilises un "int" pour stocker un nombre entier ???

    La question qu'on te pose, c'est "comment tu comptes apprendre à l'ordi à détecter si un vecteur est sous-ensemble d'un autre". C'est quoi pour toi un vecteur, un sous-ensemble, comment on peut le représenter algorithmiquement, etc.
    Déjà par exemple c'est quoi "s" ? Pourquoi c'est un tableau 2D ? Parce que mes années d'études sont loin mais je me souviens quand-même qu'un vecteur c'était juste une coordonnée (x, y), pas un tableau de 30x30 cases !!!
    Mon Tutoriel sur la programmation «Python»
    Mon Tutoriel sur la programmation «Shell»
    Sinon il y en a pleins d'autres. N'oubliez pas non plus les différentes faq disponibles sur ce site
    Et on poste ses codes entre balises [code] et [/code]

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

Discussions similaires

  1. Réponses: 2
    Dernier message: 23/08/2009, 10h47
  2. Erreur qui bloque mon programme
    Par bugland dans le forum Langage
    Réponses: 6
    Dernier message: 21/12/2006, 22h32
  3. Réponses: 6
    Dernier message: 04/08/2006, 11h24
  4. Réponses: 3
    Dernier message: 25/07/2006, 17h46
  5. Réponses: 2
    Dernier message: 29/12/2005, 10h25

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