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 :

donnée resultat


Sujet :

C

  1. #1
    Membre habitué
    Inscrit en
    Avril 2006
    Messages
    10
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 10
    Par défaut donnée resultat
    Bonjour à tous,

    j'ai commencer à faire mon projet de bataille navale mais je n'arrive pas a faire marcher mon action Ajoutercasebateau. Elle ne veux pas modifier ma grillevide je crois que c'est un probleme de donnée-resultat ....
    plz !!
    Voila mon programme :

    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
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
     
     
    #include <stdio.h>
     
    typedef struct 
    {
       int colonne;
       int ligne;
       int longueur;
       int orientation;
       int nbtouches;
    }bateau;
     
    typedef struct 
    {
       bateau *contenu;
       int etat;
    }Case;
     
    typedef struct 
    {
       Case tableau[9][9];
    }grille;
     
    grille Grillevide ()
    {
        grille g;
        int i,j;
        for (i=1;i<9;i++)
        {
            for (j=1;j<9;j++)
            {
                g.tableau[i][j].contenu = NULL;
                g.tableau[i][j].etat= 0;
            }
        }
        return(g);
    }
     
    void Ajoutercasebateau(int i,int j, grille g) 
    {
         g.tableau[i][j].etat = 5;
    }
     
    void Afficherbateau(grille g)
    {
    int i,j,k;
    j=1;
    k=1;
    printf("\n\n\n  ");
        for (i=1;i<9;i=i+1)
        {
           printf(" %d", j);
           j=j+1;
        }
        printf("\n\n\n");
        for (i=1;i<9;i=i+1)
        {   
           printf("%d  ",k);
           k=k+1;
           for (j=1;j<9;j=j+1)
           {   
              printf("%d ",g.tableau[i][j].etat) ;
           }
           printf("\n\n"); 
        } 
    }
    main()
    {
    grille x;  
     
    x = Grillevide ();
    Ajoutercasebateau(3,3,x); 
    Afficherbateau(x);
     getchar();getchar();
    }

  2. #2
    Expert confirmé
    Avatar de Skyounet
    Homme Profil pro
    Software Engineer
    Inscrit en
    Mars 2005
    Messages
    6 380
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : Software Engineer
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2005
    Messages : 6 380
    Par défaut
    En C le passage d'argument ce fais par copie, donc lorsque tu passes ta grille en parametre, la fonction Ajoutercasebateau() en a une copie, donc si tu la modifies, elle ne sera pas modifiée dans le main.

    Il faut donc passer un pointeur sur la grille

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    void Ajoutercasebateau(int i,int j, grille *g)
    {
         g->tableau[i][j].etat = 5;
    }
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    int main(void)
    {
    grille x; 
     
    x = Grillevide ();
    Ajoutercasebateau(3,3,&x);
    Afficherbateau(x);
     getchar();getchar();
    }
    main renvoi toujours int
    - int main(void)

  3. #3
    Membre habitué
    Inscrit en
    Avril 2006
    Messages
    10
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 10
    Par défaut
    ok c bon ca marche !

    merci bcp

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [MySQL] Requete SQL donne resultat inatendu
    Par Madfrix dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 25/02/2010, 13h41
  2. mauvaise resultat de recherche de donnée
    Par magicfrom dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 21/05/2008, 15h36
  3. resultat hiérarchique de ma base de données
    Par steph76 dans le forum SQL
    Réponses: 0
    Dernier message: 25/12/2007, 10h23
  4. [Requête]somme donne resultat anormal
    Par moicats dans le forum Requêtes et SQL.
    Réponses: 1
    Dernier message: 27/03/2007, 10h24
  5. [C#/DataView] Pourquoi mon tri ne donne pas le resultat escompté ?
    Par Low-Fi dans le forum Accès aux données
    Réponses: 1
    Dernier message: 12/08/2006, 22h15

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