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 :

Matrice 2 dimensions qui n'est pas accessible


Sujet :

C

  1. #1
    Membre confirmé
    Homme Profil pro
    Gestion comptable - Spécialiste Excel, Vba, - Débutant MySql, Javascript, Python, Php
    Inscrit en
    Mars 2010
    Messages
    48
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Gestion comptable - Spécialiste Excel, Vba, - Débutant MySql, Javascript, Python, Php

    Informations forums :
    Inscription : Mars 2010
    Messages : 48
    Par défaut Matrice 2 dimensions qui n'est pas accessible
    Bonjour,

    Le code ci-dessous est supposé demander le nombre de lignes et colonnes d'une matrice à 2 dimensions et saisir les nombres dans cette matrice et ensuite afficher le contenu de la matrice :

    Mais les nombres affichés ne sont pas les bons à compter de la seconde ligne. Les boucles me paraissent cohérentes alors je ne vois pas où ça bloque.

    Voici :

    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
     
    #include <stdio.h>
     
    #define LMax 10
    #define CMax 10
     
    void GetDim(int *FLig, int *FCol,  int FLMax, int FCMax) ;
    void Get2dMat(int *FMat, int *FLig, int *FCol) ;
    void Display2dMat(int *FMat, int *FLig, int *FCol) ;
     
    int main(void)
    {
     
     
    	int Mat[LMax][CMax] ;
    	int Lig ;
    	int Col ;
     
    	GetDim(&Lig, &Col, LMax, CMax) ;
    	Get2dMat( (int *) Mat, &Lig, &Col) ;
    	Display2dMat( (int *) Mat, &Lig, &Col) ;
     
    	printf("\n\n") ;
    	return 0 ;
    }
     
    void GetDim(int *FLig, int *FCol,  int FLMax, int FCMax) 
    {
    	printf("\n\nEntrez le nbr de ligne de la matrice : ") ;
    	scanf("%d", FLig) ;
     
    	printf("\nEntrez le nbr de colonne de la matrice : ") ;
    	scanf("%d", FCol) ;	
    }
     
    void Get2dMat(int *FMat, int *FLig, int *FCol)
    {
    	int i ;
    	int j ;
     
    	for ( i = 0  ;  i < *FLig  ;  i++ )
    		for ( j = 0  ;  j < *FCol  ;  j++ )
    		{
    			printf("\nElement[%d][%d] : ", i, j) ;
    			scanf("%d", (int *) FMat + i * *FCol + j ) ;
    		}
    }
     
    void Display2dMat(int *FMat, int *FLig, int *FCol)
    {
    	int i ;
    	int j ;
     
    	for ( i = 0  ;  i < *FLig  ;  i++ )
    		for ( j = 0  ;  j < *FCol  ;  j++ )
    			printf("\n%d", *(FMat + i * *FLig + j)) ;
    }
    Merci,

    Pascal

  2. #2
    Invité
    Invité(e)
    Par défaut
    Je ne connais pas la méthode que tu utilises pour accéder aux cases de ta matrice, aussi je vais peut etre dire une bêtise... mais il me semble que tu passes ta matrice, qui est de type int **, en tant que int * et que du coup lorsque tu accèdes à tes index ca ne fonctionne plus.
    Comme dit plus haut, je ne connais pas ta méthode et je ne peux que te conseiller celle que je connais: passer la matrice aux fonctions sous cette forme: int **Fmat (ou int Fmat[]) et d'accéder aux index en écrivant Fmat[i][j]

  3. #3
    Membre Expert
    Profil pro
    Inscrit en
    Août 2006
    Messages
    1 104
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 1 104
    Par défaut
    Dans la fonction Display2dMat :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    printf("\n%d", *(FMat + i * *FCol + j)) ;

  4. #4
    Membre confirmé
    Homme Profil pro
    Gestion comptable - Spécialiste Excel, Vba, - Débutant MySql, Javascript, Python, Php
    Inscrit en
    Mars 2010
    Messages
    48
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Gestion comptable - Spécialiste Excel, Vba, - Débutant MySql, Javascript, Python, Php

    Informations forums :
    Inscription : Mars 2010
    Messages : 48
    Par défaut
    Citation Envoyé par jeroman Voir le message
    Dans la fonction Display2dMat :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    printf("\n%d", *(FMat + i * *FCol + j)) ;
    aucun commentaire sur mon étourderie.

    Merci

Discussions similaires

  1. Mesure qui n'est pas lié à toutes les dimension => eviter les NULL
    Par khadhraoui1 dans le forum Décisions SGBD
    Réponses: 1
    Dernier message: 14/08/2014, 12h04
  2. Réponses: 8
    Dernier message: 04/08/2004, 14h17
  3. Le réseau n'est pas accessible ?
    Par vbcasimir dans le forum Réseau
    Réponses: 12
    Dernier message: 08/06/2004, 10h34
  4. LIKE de tout ce qui n'est pas compris entre a<-&
    Par DjinnS dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 28/07/2003, 13h09
  5. [VB6] générer un recordset qui n'est pas lier à un bdd
    Par damyrid dans le forum VB 6 et antérieur
    Réponses: 3
    Dernier message: 05/06/2003, 17h48

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