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 :

Diviser en fonctions


Sujet :

C

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Mars 2011
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2011
    Messages : 3
    Par défaut Diviser en fonctions
    Bonjour,
    je suis nouveau dans la programmation en langage C.
    J'ai créé un programme sur le jeu de la vie ( ici la propagation d'un feu de foret ).

    Le problème est qu'il est tout dans le "main". J'aimerais le diviser en plusieurs fonctions.
    Mais je ne vois pas comment je peux faire pour créer des fonctions qui renvoient 2 tableaux, 1 char ( matrice ) et un int ( matrice2 ).

    Puisque je ne m'y connais pas encore fort dans les pointeurs, pouvez-vous m'aider dans mon problème ?

    Merci d'avance

    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
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    150
    151
    152
    153
    154
    155
    156
    157
    158
    159
    160
    161
    162
    163
    164
    165
    166
    167
    168
    169
    170
    171
    172
    173
    174
    175
    176
    177
    178
    179
    180
    181
    182
    183
    184
    185
    186
    187
    188
    189
    190
    191
    192
    193
    194
    195
    196
    197
    198
    199
    200
    201
    202
    203
    204
    205
    206
    207
    208
    209
    210
    211
    212
    213
    214
    215
    216
    217
    218
    219
    220
    221
    222
    223
    224
    225
    226
    227
    228
    229
    230
    231
    232
    233
    234
    235
    236
    237
    238
    239
    240
    #include <stdio.h>
    #include <time.h>
    #include <stdlib.h>
     
    //14h45 mercredi
    //déclaration des différentes variables:
    int cycle=0;
    int choix;
    int cpta=0;
    int c=0; // colonnes
    int l=0; // lignes
    int Max=34;
    int Min=0;
    char matrice[35] [35]; //tableau à deux dimenssions
    int matrice2 [35] [35];// matrice 2 = tableau qui sert à compter combien de fois les cases feu sont en feu (nombre de cycle)
     
     
    int main()
    {
        int l=0;
        srand(time(NULL)); // permet d'utiliser le mode aléatoire
     
        //AFFICHAGE DU MENU :
               printf ("\t\t\t     *****************\n");
               printf ("\t\t\t      LE FEU DE FORET \n");
               printf ("\t\t\t     *****************\n");
               printf ("\n");
               printf ("\n");
               printf ("\n");
               printf ("                *   7777777777777777.7777777777777777777\n");
               printf ("                *   7777777777777777..777777777777777777              \n");
               printf ("               ***  7777777777777777...77777777777777777               *\n");
               printf ("       *       ***  7777777777.77777....7777777777777777               *\n");
               printf ("       *      ***** 7777777777..777..... 777.77777777777        *     ***\n") ;
               printf ("  *   ***     ***** 7777777777..777......777.77777777777       ***    *** \n");
               printf ("  *   ***    *******777777777....77......777..7777777777       ***   *****\n");
               printf (" *** ****    *******77777.777....7.......77...7777777777  *   ***** *  #_\n");
               printf ("**********  ********777777.7 .................77 7777777  * ..--#  ***  \n");
               printf ("**********  ********777777....................77..777777 ***       ***  \n");
               printf ("************ *******777777...........7.......7....777777 ***      ***** \n");
               printf ("***********   .-#.-'777777...........77...........777777*****..     # \n");
               printf ("  # ''-#---''       77.777..........7777..........777777***** ''-.---''- \n");
               printf ("    *       *       77...77.........7777.........7777777  #   *     *\n");
               printf ("   ***     ***      777............77777........77.77777     ***   *** \n");
               printf ("  *****    ***      777............777777..........77777     ***  *****\n");
               printf ("    #     *****     7777..........77777777......... 7777    *****   # \n");
               printf ("  -.---   .-#.-'    7777.........777777777.........77777  -'.-#  ''-.---'\n\n");
               printf ("\n");
               printf ("                    PUSH 'F' TO PUT FIRE OR 'Q' TO EXIT:  \n");
               printf ("                                                          =>  ");
     
     
     
                                     while (choix!= 'F' && choix !='f' && choix != 'Q' && choix != 'q')
               {
                     scanf("%s",&choix); //tant que le caractere est different de F,f,Q,q  on relit le caractere.
               }
     
     
    if (choix == ('Q') || choix ==('q'))
    {
     
    }
     
     if (choix == ('F') || choix ==('f'))
         {
     
    system("cls");
     
        while ( l < 35)  // boucle pour remplir le tableau
       {
        c = 0;
        while (c < 35)
         {
          matrice [l] [c] = ' '; // mets les espaces vides dans les colonnes et lignes
          c = c + 1;
         }
        l = l + 1;
       }
     
                   while (cpta < 1100)  // insère les 750 arbres aléatoirement grace à 'rand'
                  {
                   l=0;
                   c=0;
     
                   l = (rand() % (Max - Min + 1)) + Min;
                   c = (rand() % (Max - Min + 1)) + Min;
                   matrice [l][c] = '*'; // ETAT ARBRE
                   cpta++;
                  }
     
                   l=0;
                   c=0;
     
                   l = (rand() % (Max - Min + 1)) + Min;
                   c = (rand() % (Max - Min + 1)) + Min;
                   matrice [l][c] = '¸'; //ETAT FEU
                   matrice2 [l][c]= 1;
     
     
     
     
     
     
     
     l=0;
       while ( l < 35) // boucle qui affiche les arbres et les espaces vides
        {
         c = 0;
          while (c < 35)
           {
             printf("%c ",matrice[c][l]);
             c = c + 1;
           }
          printf(" \n ");
          l = l + 1;
        }
     
     
    system("pause");
     
        while (cycle<40)  // génère le nombre de fois qu'il faut appuyer sur ENTER
        {
          l=0;
           while ( l < 35)
            {
             c = 0;
              while (c < 35)
               {
                if(matrice [l][c] == '¸' && matrice2 [l][c] == 1) // si case feu et si matrice =1 alors on fait les autre if
                 {
                   if (matrice[l-1][c-1] == '*') // bas gauche de matrice[c][l]
                   {
                     if (l!=0 && c !=0 ) // permet au tableau de ne pas déborder (vérification de la postion)
                     {
                         matrice[l-1][c-1] = '¸';
                     }
     
                   }
                   if (matrice[l][c-1] == '*') // gauche de matrice[c][l]
                   {
                       if (c != 0)
                       {
                           matrice[l][c-1] = '¸';
                       }
     
                   }
                    if (matrice[l+1][c-1] == '*') // haut gauche de matrice[c][l]
                   {
                       if (l != 34 && c !=0)
                       {
                         matrice[l+1][c-1] = '¸';
                       }
     
                   }
                    if (matrice[l-1][c] == '*') // haut de matrice[c][l]
                   {
                       if (l !=0)
                       {
                          matrice[l-1][c] = '¸';
                       }
     
                   }
                    if (matrice[l+1][c] == '*') // bas de matrice[c][l]
                   {
                       if(l!=34)
                       {
                        matrice[l+1][c] = '¸';
                       }
     
                   }
                    if (matrice[l-1][c+1] == '*') // bas droite de matrice[c][l]
                   {
                       if(l !=0 && c!= 34)
                       {
                         matrice[l-1][c+1] = '¸';
                       }
     
                   }
                   if (matrice[l][c+1] == '*') // droite de matrice[c][l]
                   {
                       if(c!=34)
                       {
                           matrice[l][c+1] ='¸';
                       }
     
                   }
                   if (matrice[l+1][c+1] == '*') // haut droite de matrice[c][l]
                   {
                       if (l != 34 && c !=34)
                       {
                           matrice[l+1][c+1] = '¸';
                       }
     
                   }
                }
             c = c + 1;
              }  //fermeture while 3
           l = l + 1;
            }
     
    cycle++;
     
    l=0;
       while ( l < 35) // boucle qui affiche les arbres et les espaces vides
        {
         c = 0;
          while (c < 35)
           {
             if (matrice [l][c] == '¸')
             matrice2 [l][c] += 1; // augmente de 1 les cases en feu dans matrice deux
             if (matrice2 [l][c]==5) // après le quatrième ça devient cendre (à partir du cinquième cycle)
             matrice [l][c] = '|'; // ETAT CENDRE
             c = c + 1;
           }
          l = l + 1;
        }
     
    system("cls");
    // affiche le tableau avec les feux et cendre
    l=0;
         while ( l < 35)
          {
            c = 0;
            while (c < 35)
             {
              printf("%c ",matrice[c][l]);
              c = c + 1;
             }
            printf(" \n ");
            l = l + 1;
          }
     
     
    system("pause");
     
     
    }// 45
    printf("\n");
    printf("\tFIN de l'operation - Mise en feu d'une foret -\n");

  2. #2
    Modérateur
    Avatar de Obsidian
    Homme Profil pro
    Chercheur d'emploi
    Inscrit en
    Septembre 2007
    Messages
    7 476
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Chercheur d'emploi
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2007
    Messages : 7 476
    Par défaut
    Bonjour,

    Renvoyer des tableaux en C a toujours été délicat car ce ne sont pas des objets en eux-mêmes. Il faut prévoir leur allocation et leur libération éventuelle par la fonction appelante. Sauf dans le cas où tes tableaux font partie d'une structure.

    Utiliser une structure est le meilleur moyen, pour une fonction, de renvoyer plusieurs paramètres à la fois. Si tes tableaux ont une taille fixe et connue à l'avance, alors tu peux déclarer un type :

    Code C : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    struct Scene 
    {
        char    matrice [32][32];
        int     feux    [32][32];
    };
     
    struct Scene MiseAJourScene (struct Scene s);

    Ceci devrait te permettre de te passer de pointeurs dans un premier temps, à condition que ton terrain de jeux ne dépasse pas trop les dimensions que tu lui a donné, sinon tu risque d'éclater la pile. Je passe aussi sur typedef dans un premier temps…

    Par ailleurs, tu peux également utiliser struct pour définir une case de jeu, avec ses attributs, et définir ensuite un seul tableau de cases :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    struct Case 
    {
        char c;      /* Caractère de la case en question */
        int f;       /* Nombre de fois où elle a été incendiée */
    };
     
    struct Case matrice[32][32];
    Ainsi, tu n'as qu'un seul tableau tout au long de ton jeu et tu n'as qu'à passer le pointeur vers ce tableau à toutes tes fonctions, en spécifiant simplement « matrice » tout court, en argument. En plus, si tu veux tenir compte de paramètres supplémentaires, il te suffit de les ajouter au sein de la structure Case, sans avoir à modifier le code déjà existant.

  3. #3
    Candidat au Club
    Profil pro
    Inscrit en
    Mars 2011
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2011
    Messages : 3
    Par défaut
    Merci pour les explications. Ca me semble quand même difficile à réaliser ( je n'ai pas encore vu cette matière en cours ).
    Je vais tout de même, je vais essayer avec les pointeurs.
    Si j'ai un soucis je reposterai ici oùu j'en serai arrivé.

    Encore merci.

  4. #4
    Membre éclairé
    Profil pro
    Inscrit en
    Février 2006
    Messages
    396
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2006
    Messages : 396
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    char matriceTMP[30] [30]; //tableau à deux dimenssions
    int suivant;
     
    void test(char matrice[30][30]){
           matrice[1][1] = 'D';
    }
     
    int main()
    {
        char matrice[30] [30]; //tableau à deux dimenssions
        test(&matrice);
        printf("%c ",matrice[1][1]);
    Voila si je reprend ton code et que je met la matrice en déclaration non global. Je peux passer en paramètre à la fonction test de cette manière. Pour deux tableaux, c'est la même chose, tu doubles juste la variable matrice dans ta fonction en séparant les deux par une ,

    En espérant t'avoir aidé.

  5. #5
    Expert confirmé
    Avatar de diogene
    Homme Profil pro
    Enseignant Chercheur
    Inscrit en
    Juin 2005
    Messages
    5 761
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Enseignant Chercheur
    Secteur : Enseignement

    Informations forums :
    Inscription : Juin 2005
    Messages : 5 761
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    void test(char matrice[30][30])....
    ....
        char matrice[30] [30]; //tableau à deux dimenssions
        test(&matrice);
    Non, on doit avoir

  6. #6
    Candidat au Club
    Profil pro
    Inscrit en
    Mars 2011
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2011
    Messages : 3
    Par défaut
    Merci à tout le monde, ça avance bien. Vous mettrez le code quand j'aurai fini.

  7. #7
    Membre prolifique
    Avatar de Sve@r
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2006
    Messages
    12 832
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 12 832
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par 1nf3ct3d Voir le message
    Bonjour,
    je suis nouveau dans la programmation en langage C.
    J'ai créé un programme sur le jeu de la vie ( ici la propagation d'un feu de foret ).

    Le problème est qu'il est tout dans le "main". J'aimerais le diviser en plusieurs fonctions.
    Mais je ne vois pas comment je peux faire pour créer des fonctions qui renvoient 2 tableaux, 1 char ( matrice ) et un int ( matrice2 ).

    Puisque je ne m'y connais pas encore fort dans les pointeurs, pouvez-vous m'aider dans mon problème ?

    Merci d'avance

    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
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    150
    151
    152
    153
    154
    155
    156
    157
    158
    159
    160
    161
    162
    163
    164
    165
    166
    167
    168
    169
    170
    171
    172
    173
    174
    175
    176
    177
    178
    179
    180
    181
    182
    183
    184
    185
    186
    187
    188
    189
    190
    191
    192
    193
    194
    195
    196
    197
    198
    199
    200
    201
    202
    203
    204
    205
    206
    207
    208
    209
    210
    211
    212
    213
    214
    215
    216
    217
    218
    219
    220
    221
    222
    223
    224
    225
    226
    227
    228
    229
    230
    231
    232
    233
    234
    235
    236
    237
    238
    239
    240
    #include <stdio.h>
    #include <time.h>
    #include <stdlib.h>
     
    //14h45 mercredi
    //déclaration des différentes variables:
    int cycle=0;
    int choix;
    int cpta=0;
    int c=0; // colonnes
    int l=0; // lignes
    int Max=34;
    int Min=0;
    char matrice[35] [35]; //tableau à deux dimenssions
    int matrice2 [35] [35];// matrice 2 = tableau qui sert à compter combien de fois les cases feu sont en feu (nombre de cycle)
     
     
    int main()
    {
        int l=0;
        srand(time(NULL)); // permet d'utiliser le mode aléatoire
     
        //AFFICHAGE DU MENU :
               printf ("\t\t\t     *****************\n");
               printf ("\t\t\t      LE FEU DE FORET \n");
               printf ("\t\t\t     *****************\n");
               printf ("\n");
               printf ("\n");
               printf ("\n");
               printf ("                *   7777777777777777.7777777777777777777\n");
               printf ("                *   7777777777777777..777777777777777777              \n");
               printf ("               ***  7777777777777777...77777777777777777               *\n");
               printf ("       *       ***  7777777777.77777....7777777777777777               *\n");
               printf ("       *      ***** 7777777777..777..... 777.77777777777        *     ***\n") ;
               printf ("  *   ***     ***** 7777777777..777......777.77777777777       ***    *** \n");
               printf ("  *   ***    *******777777777....77......777..7777777777       ***   *****\n");
               printf (" *** ****    *******77777.777....7.......77...7777777777  *   ***** *  #_\n");
               printf ("**********  ********777777.7 .................77 7777777  * ..--#  ***  \n");
               printf ("**********  ********777777....................77..777777 ***       ***  \n");
               printf ("************ *******777777...........7.......7....777777 ***      ***** \n");
               printf ("***********   .-#.-'777777...........77...........777777*****..     # \n");
               printf ("  # ''-#---''       77.777..........7777..........777777***** ''-.---''- \n");
               printf ("    *       *       77...77.........7777.........7777777  #   *     *\n");
               printf ("   ***     ***      777............77777........77.77777     ***   *** \n");
               printf ("  *****    ***      777............777777..........77777     ***  *****\n");
               printf ("    #     *****     7777..........77777777......... 7777    *****   # \n");
               printf ("  -.---   .-#.-'    7777.........777777777.........77777  -'.-#  ''-.---'\n\n");
               printf ("\n");
               printf ("                    PUSH 'F' TO PUT FIRE OR 'Q' TO EXIT:  \n");
               printf ("                                                          =>  ");
     
     
     
                                     while (choix!= 'F' && choix !='f' && choix != 'Q' && choix != 'q')
               {
                     scanf("%s",&choix); //tant que le caractere est different de F,f,Q,q  on relit le caractere.
               }
     
     
    if (choix == ('Q') || choix ==('q'))
    {
     
    }
     
     if (choix == ('F') || choix ==('f'))
         {
     
    system("cls");
     
        while ( l < 35)  // boucle pour remplir le tableau
       {
        c = 0;
        while (c < 35)
         {
          matrice [l] [c] = ' '; // mets les espaces vides dans les colonnes et lignes
          c = c + 1;
         }
        l = l + 1;
       }
     
                   while (cpta < 1100)  // insère les 750 arbres aléatoirement grace à 'rand'
                  {
                   l=0;
                   c=0;
     
                   l = (rand() % (Max - Min + 1)) + Min;
                   c = (rand() % (Max - Min + 1)) + Min;
                   matrice [l][c] = '*'; // ETAT ARBRE
                   cpta++;
                  }
     
                   l=0;
                   c=0;
     
                   l = (rand() % (Max - Min + 1)) + Min;
                   c = (rand() % (Max - Min + 1)) + Min;
                   matrice [l][c] = '¸'; //ETAT FEU
                   matrice2 [l][c]= 1;
     
     
     
     
     
     
     
     l=0;
       while ( l < 35) // boucle qui affiche les arbres et les espaces vides
        {
         c = 0;
          while (c < 35)
           {
             printf("%c ",matrice[c][l]);
             c = c + 1;
           }
          printf(" \n ");
          l = l + 1;
        }
     
     
    system("pause");
     
        while (cycle<40)  // génère le nombre de fois qu'il faut appuyer sur ENTER
        {
          l=0;
           while ( l < 35)
            {
             c = 0;
              while (c < 35)
               {
                if(matrice [l][c] == '¸' && matrice2 [l][c] == 1) // si case feu et si matrice =1 alors on fait les autre if
                 {
                   if (matrice[l-1][c-1] == '*') // bas gauche de matrice[c][l]
                   {
                     if (l!=0 && c !=0 ) // permet au tableau de ne pas déborder (vérification de la postion)
                     {
                         matrice[l-1][c-1] = '¸';
                     }
     
                   }
                   if (matrice[l][c-1] == '*') // gauche de matrice[c][l]
                   {
                       if (c != 0)
                       {
                           matrice[l][c-1] = '¸';
                       }
     
                   }
                    if (matrice[l+1][c-1] == '*') // haut gauche de matrice[c][l]
                   {
                       if (l != 34 && c !=0)
                       {
                         matrice[l+1][c-1] = '¸';
                       }
     
                   }
                    if (matrice[l-1][c] == '*') // haut de matrice[c][l]
                   {
                       if (l !=0)
                       {
                          matrice[l-1][c] = '¸';
                       }
     
                   }
                    if (matrice[l+1][c] == '*') // bas de matrice[c][l]
                   {
                       if(l!=34)
                       {
                        matrice[l+1][c] = '¸';
                       }
     
                   }
                    if (matrice[l-1][c+1] == '*') // bas droite de matrice[c][l]
                   {
                       if(l !=0 && c!= 34)
                       {
                         matrice[l-1][c+1] = '¸';
                       }
     
                   }
                   if (matrice[l][c+1] == '*') // droite de matrice[c][l]
                   {
                       if(c!=34)
                       {
                           matrice[l][c+1] ='¸';
                       }
     
                   }
                   if (matrice[l+1][c+1] == '*') // haut droite de matrice[c][l]
                   {
                       if (l != 34 && c !=34)
                       {
                           matrice[l+1][c+1] = '¸';
                       }
     
                   }
                }
             c = c + 1;
              }  //fermeture while 3
           l = l + 1;
            }
     
    cycle++;
     
    l=0;
       while ( l < 35) // boucle qui affiche les arbres et les espaces vides
        {
         c = 0;
          while (c < 35)
           {
             if (matrice [l][c] == '¸')
             matrice2 [l][c] += 1; // augmente de 1 les cases en feu dans matrice deux
             if (matrice2 [l][c]==5) // après le quatrième ça devient cendre (à partir du cinquième cycle)
             matrice [l][c] = '|'; // ETAT CENDRE
             c = c + 1;
           }
          l = l + 1;
        }
     
    system("cls");
    // affiche le tableau avec les feux et cendre
    l=0;
         while ( l < 35)
          {
            c = 0;
            while (c < 35)
             {
              printf("%c ",matrice[c][l]);
              c = c + 1;
             }
            printf(" \n ");
            l = l + 1;
          }
     
     
    system("pause");
     
     
    }// 45
    printf("\n");
    printf("\tFIN de l'operation - Mise en feu d'une foret -\n");
    Salut

    Généralement le découpage d'un code se fait par rapport aux grandes fonctions de travail, les grandes fonctions étant aidées par de petites routines.
    Regarde ton code : Tu as
    1) un menu avec choix
    2) un remplissage de matrice
    3) un affichage de matrice
    Déjà tes grandes fonctions sont toutes trouvées !!!

    Concernant tes autres questions concernant le retour de tableaux etc je pense que t'as pas trop compris l'idée: ton main crée la matrice puis passe la matrice aux autres fonctions qui s'en servent et la remplissent. Elles n'ont donc pas besoin de renvoyer quoi que ce soit (sauf éventuellement une valeur ok/nok). Eventuellement la création peut être déléguée à une fonction annexe mais celle-ci se basera sur malloc et renverra alors juste le pointeur alloué.

    Enfin dernière remarque: les variables globales ben faut pas. C'est source de confusion, de bug et signe de fainéantise...
    Mon Tutoriel sur la programmation «Python»
    Mon Tutoriel sur la programmation «Shell»
    Sinon il y en a pleins d'autres. N'oubliez pas non plus les différentes faq disponibles sur ce site
    Et on poste ses codes entre balises [code] et [/code]

Discussions similaires

  1. Problème hauteur division en fonction de la taille du contenu
    Par csik78 dans le forum Mise en page CSS
    Réponses: 1
    Dernier message: 18/06/2012, 15h19
  2. [V6] Indicateur calculé (division) et fonction d'agrégation
    Par jalied dans le forum Designer
    Réponses: 3
    Dernier message: 17/06/2011, 14h07
  3. [Turbo Pascal] Fonction de hachage : Error 200 division par zero
    Par Hipou dans le forum Turbo Pascal
    Réponses: 1
    Dernier message: 05/05/2009, 23h26
  4. diviser une cellule en fonction d'un caractère
    Par marty499 dans le forum Excel
    Réponses: 2
    Dernier message: 03/06/2008, 16h44
  5. Fonction divisant argument de type inconnu
    Par Nasky dans le forum C
    Réponses: 9
    Dernier message: 29/07/2003, 00h32

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