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

Signaler
Messages postés
10
Date d'inscription
dimanche 15 décembre 2019
Statut
Membre
Dernière intervention
27 juin 2020
-
Messages postés
5380
Date d'inscription
mercredi 15 septembre 2004
Statut
Contributeur
Dernière intervention
3 juillet 2020
-
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

Messages postés
5380
Date d'inscription
mercredi 15 septembre 2004
Statut
Contributeur
Dernière intervention
3 juillet 2020
884
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
Messages postés
10
Date d'inscription
dimanche 15 décembre 2019
Statut
Membre
Dernière intervention
27 juin 2020

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
Messages postés
5380
Date d'inscription
mercredi 15 septembre 2004
Statut
Contributeur
Dernière intervention
3 juillet 2020
884
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