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

Fermé
lynajar Messages postés 32 Date d'inscription dimanche 15 décembre 2019 Statut Membre Dernière intervention 9 février 2021 - Modifié le 16 juin 2020 à 14:18
[Dal] Messages postés 6174 Date d'inscription mercredi 15 septembre 2004 Statut Contributeur Dernière intervention 2 février 2024 - 17 juin 2020 à 09:37
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

[Dal] Messages postés 6174 Date d'inscription mercredi 15 septembre 2004 Statut Contributeur Dernière intervention 2 février 2024 1 083
Modifié le 16 juin 2020 à 14:51
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
lynajar Messages postés 32 Date d'inscription dimanche 15 décembre 2019 Statut Membre Dernière intervention 9 février 2021
16 juin 2020 à 15:26
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
[Dal] Messages postés 6174 Date d'inscription mercredi 15 septembre 2004 Statut Contributeur Dernière intervention 2 février 2024 1 083
17 juin 2020 à 09:37
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