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 :

Procédure d'affichage d'une matrice. Mon code est il correct ?


Sujet :

C

  1. #1
    Membre habitué Avatar de condor_01
    Étudiant
    Inscrit en
    Avril 2006
    Messages
    294
    Détails du profil
    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2006
    Messages : 294
    Points : 133
    Points
    133
    Par défaut Procédure d'affichage d'une matrice. Mon code est il correct ?
    Bonjour,
    Je voudrais écrire une procédure pour afficher une matrice
    Voila le code que j'ai fait mais apparement il'y a queqlques retouches à faire.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    matrix_display(int adj_matrix[][], int nb_nodes)
    {
     int i=0;
     int j=0;
     for(i=0;i<nb_nodes;i++)
     {
      for(j=0;j<nb_nodes;j++)
      {
        printf("matrix[%d][%d]=%d  ",i,j,adj_matrix[i][j]) ;
      }
      printf ("\n");
     }
     
    }
    Qu'est ce que je dois modifier ?
    The great glory is not in never falling but in rising every time we fall.

  2. #2
    Expert éminent sénior
    Avatar de Emmanuel Delahaye
    Profil pro
    Retraité
    Inscrit en
    Décembre 2003
    Messages
    14 512
    Détails du profil
    Informations personnelles :
    Âge : 67
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2003
    Messages : 14 512
    Points : 20 985
    Points
    20 985
    Par défaut
    Citation Envoyé par condor_01 Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    matrix_display(int adj_matrix[][], int nb_nodes)
    {
    Tu as compilé ?

    http://emmanuel-delahaye.developpez.....htm#param_tab
    Pas de Wi-Fi à la maison : CPL

  3. #3
    Membre habitué Avatar de condor_01
    Étudiant
    Inscrit en
    Avril 2006
    Messages
    294
    Détails du profil
    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2006
    Messages : 294
    Points : 133
    Points
    133
    Par défaut
    Oui j'ai compilé mais j'ai ajouté la taille de la matrice pour que ça marche
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    void matrix_display(int adj_matrix[10][10], int nb_nodes)
    {
     int i=0;
     int j=0;
     for(i=0;i<nb_nodes;i++)
     {
      for(j=0;j<nb_nodes;j++)
      {
        printf("matrix[%d][%d]=%d  ",i,j,adj_matrix[i][j]) ;
      }
      printf ("\n");
     }
     
    }
    En fait, mon problème c'est que je ne connais pas la taille de la matrice dès le début.
    J'ai un programme qui compte un nombre de noeuds nb_nodes.
    Puis au milieu je définis ma matrice
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    int adj_matrix[nb_nodes][nb_nodes]
    je la remplis et je l'affiche.
    Comment puis je intégrer la taille de la matrice dans la déclaration de ma fonction??
    The great glory is not in never falling but in rising every time we fall.

  4. #4
    Expert éminent sénior
    Avatar de Emmanuel Delahaye
    Profil pro
    Retraité
    Inscrit en
    Décembre 2003
    Messages
    14 512
    Détails du profil
    Informations personnelles :
    Âge : 67
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2003
    Messages : 14 512
    Points : 20 985
    Points
    20 985
    Par défaut
    Citation Envoyé par condor_01 Voir le message
    En fait, mon problème c'est que je ne connais pas la taille de la matrice dès le début.
    J'ai un programme qui compte un nombre de noeuds nb_nodes.
    Puis au milieu je définis ma matrice
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    int adj_matrix[nb_nodes][nb_nodes]
    je la remplis et je l'affiche.
    Comment puis je intégrer la taille de la matrice dans la déclaration de ma fonction??
    Tu veux dire que la taille de la matrice est déterminée à l'exécution ?

    Dans ce cas, elle est 'basée' sur un pointeur de type
    et elle est construite selon ce principe :

    http://emmanuel-delahaye.developpez.....htm#tabdyn_2d

    Il suffit donc de passer ce pointeur et la taille :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    void matrix_display(int const **adj_matrix, size_t nb_nodes)
    {
    Pas de Wi-Fi à la maison : CPL

  5. #5
    Membre habitué Avatar de condor_01
    Étudiant
    Inscrit en
    Avril 2006
    Messages
    294
    Détails du profil
    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2006
    Messages : 294
    Points : 133
    Points
    133
    Par défaut
    Merci,
    ça marche exactement comme je veux.
    Là j'ai un autre cas à traiter.
    C'est le cas où je veux modifier le contenu de ma matrice dans ma fonction.
    Qu'est ce que je dois passer en paramètre?
    The great glory is not in never falling but in rising every time we fall.

  6. #6
    Expert éminent sénior
    Avatar de Emmanuel Delahaye
    Profil pro
    Retraité
    Inscrit en
    Décembre 2003
    Messages
    14 512
    Détails du profil
    Informations personnelles :
    Âge : 67
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2003
    Messages : 14 512
    Points : 20 985
    Points
    20 985
    Par défaut
    Citation Envoyé par condor_01 Voir le message
    <...>je veux modifier le contenu de ma matrice dans ma fonction.
    Qu'est ce que je dois passer en paramètre?
    Pourquoi serait-ce différent ? Il faut toujours l'adresse et la dimension. Seule nuance, comme il faut autoriser la modification, il faut retirer le 'const'.
    Pas de Wi-Fi à la maison : CPL

Discussions similaires

  1. affichage d'une matrice carrée
    Par s-ehtp dans le forum C
    Réponses: 18
    Dernier message: 29/02/2008, 08h40
  2. Problème d'affichage d'une matrice
    Par zicoadis dans le forum Débuter
    Réponses: 4
    Dernier message: 26/01/2008, 17h36
  3. Affichage d'une matrice dans un edit
    Par harris_macken dans le forum Interfaces Graphiques
    Réponses: 15
    Dernier message: 22/11/2007, 21h35
  4. [TP] Affichage d'une matrice
    Par williamdunord dans le forum Turbo Pascal
    Réponses: 19
    Dernier message: 28/05/2007, 20h46
  5. Affichage d'une matrice
    Par ypascal dans le forum Pascal
    Réponses: 7
    Dernier message: 24/04/2006, 20h03

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