Résultat d'éxecution n'est pas correcte

lynajar Messages postés 2 Date d'inscription   Statut Membre Dernière intervention   -  
[Dal] Messages postés 6122 Date d'inscription   Statut Contributeur Dernière intervention   -
Bonjour;
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() que j'arrive pas à résoudre

#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;
}

2 réponses

  1. [Dal] Messages postés 6122 Date d'inscription   Statut Contributeur Dernière intervention   1 108
     
    Salut lynajar,

    Ta fonction
    test_inclu()
    déclare son propre tableau
    int s[30][30]
    . Elle accès à ce tableau là, et non pas à celui déclaré dans la fonction main.

    Pour accéder au tableau
    int s[30][30]
    déclaré dans la fonction main, le prototype de ta fonction
    test_inclu()
    devrait être changé, par exemple en int
    test_inclu(int i, int j, int s[30][30])
    et la re-déclaration de
    int s[30][30]
    retirée du contenu de
    test_inclu()
    .

    Ton appel à la fonction
    test_inclu()
    depuis main sera alors :
    test_inclu(i, j, s)


    Dal
    0
  2. lynajar Messages postés 2 Date d'inscription   Statut Membre Dernière intervention  
     
    merci Dal pour ton aide,
    ça marche
    mais mon but c'est lorsque le résultat est true normalement le programme doit vérifier les autres colonnes (incrémenté la variable k), mais le cas de mon programme il sort directement dans les deux cas, sois true ou false
    0
    1. [Dal] Messages postés 6122 Date d'inscription   Statut Contributeur Dernière intervention   1 108
       
      Tu as donc résolu ton problème d'accès au tableau.

      Tu sembles avoir un autre problème, qui est que ton programme ou ta fonction ne fait pas ce que tu penses qu'elle devrait faire, mais tes explications sont confuses ou absentes sur ce que tu veux faire.

      Alors, peux-tu :
      • donner un exemple de ce qui figure dans le tableau s suite à la saisie (saisie 18 valeurs).
      • dire ce que tu attends que la fonction retourne et pourquoi
      • dire ce que la fonction retourne en réalité et qui ne correspond pas à ce que attends


      Dal
      0