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 :

vérification d'un programme


Sujet :

C

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    38
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2006
    Messages : 38
    Par défaut vérification d'un programme
    jai un pgm que je doit faire c'est un pile ou face et on doit utilisé les pointeur avec un fichier .h je veux juste demander si mon pgm est bon car apparament il y a bug dans le .c. Donc je veux xavoir si le .c est bon et si c'est bien comme sa que l'on fait un .h


    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
    241
    242
    243
    244
    245
    246
    247
    248
    249
    250
    251
    252
    253
    254
    255
    256
    257
    258
    259
    260
    261
    262
    263
    264
    265
    266
    267
    268
    269
    270
    271
    272
    273
    274
    275
    276
    277
    278
    279
    280
    281
    282
    283
    284
    285
    286
    287
    288
    289
    290
    291
    292
    293
    294
    295
    296
    297
    298
    299
    300
    301
    302
    303
    304
    305
    306
    307
    308
    309
    310
    311
    312
    313
    314
    315
    316
    317
    318
    319
    320
    321
    322
    323
    324
    325
    #include "lab5.h"
    int nb_ok;
    int nb_essais;
    /* déclaration de la deuxième fonction : reçoit le nombre d'essais, vecteur de tirage de l'ordinateur, vecteur de proposition,
    retourne le nb de fois où l'utilisateur a trouvé le bon résultat */
     
    char affichage1 (int nb_essais, char joueur [15], char ordi [15])
    //affichage du premier écran
    {
            char choix ;
            int moyenne = 0, nb_ok; 
     
            if (nb_essais != 0)      
            {
                    // nb_ok = comparaison(ordi, joueur, nb_essais);
                    moyenne = nb_ok * 100 / nb_essais ;         
            }
     
            system ("cls") ;
            printf ("\n\n\t\t\tPile ou Face\n") ;
            printf ("\t\t\t============\n\n\n") ;
            printf ("\tPartie en cours : \n\n") ;
            printf ("\t\tNombre d'essais : %d \n" , nb_essais) ;
            printf ("\t\tPourcentage de reussite : %d %%\n\n", moyenne) ;
            printf ("\n\tMenu :\n\n") ;
            printf ("\t\t(N)  Demarrer une Nouvelle partie\n") ;
            printf ("\t\t(L)  Lancer la piece\n") ;
            printf ("\t\t(Q)  Quitter\n\n\n\n") ;
            printf ("\t\t\t\t\tChoix? ") ;
            choix = getch ();      
            return (choix) ;
    }
     
    void affichage2 (int nb_essais,char vecteur_ordi[],char vecteur_prop[],int nb_ok)
    //affichage du second écran
    {
            int i;
            char cont = 'M';
     
            int moyenne = 0;
            system("cls"); // Effacement d'écran
     
            printf("\n\n\t\tPile ou Face\n");
            printf("\t\t============\n\n\n");
     
            printf("  Resultat de la derniere partie :\n");
            printf("  --------------------------------\n\n\n");
     
            // Reglage de l'affichage
            if (nb_essais <= 10)
            {
                    printf("\n  |-----------|");
                    for (i = 0 ; i < nb_essais ; i++)
                    {
                            printf("----|");
                    }
                    printf("\n  |Tentative  |");
     
     
                    for (i = 0 ; i < nb_essais ; i++)
                    {
                            printf("%3d |",i+1);
                    }
                    printf("\n  |-----------|");
                    for (i = 0 ; i < nb_essais ; i++)
                    {
                            printf("----|");
                    }
                    printf("\n  |Tirage     |");
                    for (i = 0 ; i < nb_essais ; i++)
                    {
                            printf("  %c |", vecteur_ordi[i]);
                    }
                    printf("\n  |Proposition|");
                    for (i = 0 ; i < nb_essais ; i++)
                    {
                            printf("  %c |",vecteur_prop[i]);
                    }
                    printf("\n  |-----------|");
                    for (i = 0 ; i < nb_essais ; i++)
                    {
                            printf("----|");
                    }
            }
            else
            {
                    printf("\n  |-----------|");
     
                    for (i = 0 ; i < 10 ; i++)
                            printf("----|");
     
                    printf("\n  |Tentative  |");
     
                    for (i = 0 ; i < 10 ; i++)
                            printf("%3d |",i+1);
     
                    printf("\n  |-----------|");
     
                    for (i = 0 ; i < 10 ; i++)
                            printf("----|");
     
                    printf("\n  |Tirage     |");
     
                    for (i = 0 ; i < 10 ; i++)
                            printf("  %c |", vecteur_ordi[i]);
     
                    printf("\n  |Proposition|");
     
                    for (i = 0 ; i < 10 ; i++)
                            printf("  %c |",vecteur_prop[i]);
     
                    printf("\n  |-----------|");
     
                    for (i = 0 ; i < 10 ; i++)
                            printf("----|");
     
                    // Affichage sur 2 lignes
                    printf("\n\n  |-----------|");         
                    i=10;
     
     
     
                    while (( i < nb_essais) && (i < 15))
                    {
                            printf("----|");
                            i++;
                    }
                    printf("\n  |Tentative  |");
                    i=10;
     
                    while ((i < nb_essais) && (i < 15))
                    {
                            printf("%3d |",i+1);
                            i++;
                    }
                    printf("\n  |-----------|");
                    i=10;
     
                    while ((i < nb_essais) && (i < 15))
                    {
                            printf("----|");
                            i++;
                    }
                    printf("\n  |Tirage     |");
                    i=10;
     
                    while ((i < nb_essais) && (i < 15))
                    {
                            printf("  %c |", vecteur_ordi[i]);
                            i++;
                    }
                    printf("\n  |Proposition|");
                    i=10;
     
                    while ((i < nb_essais) && (i < 15))
                    {
                            printf("  %c |",vecteur_prop[i]);
                            i++;
                    }
                    printf("\n  |-----------|");
                    i=10;
     
                    while ((i < nb_essais) && (i < 15))
                    {
                            printf("----|");
                            i++;
                    }
            }   
     
            if (nb_essais != 0)
            {
                    moyenne = nb_ok * 100 / nb_essais ;
                    // Pour éviter la division par 0 au premier affichage
                    printf("\n\n\n  Pourcentage de reussite du joueur : %d %%",moyenne);
            }        
     
            printf("\n\n  Appuyez sur la touche 'C' pour continuer ");
            while ((cont != 'C') && (cont != 'c'))
                    {cont = getch();}
     
    }
     
     
     
    //// déclaration de la première fonction : celle qui retourne pile ou face (Vrai ou Faux)
     
    char pileface ()
    {                      
            // déclaration des variables de la première fonction                          
            int reste ;
            char pileouface ;
     
            // fonction qui retourne pile ou face      
            reste = rand() % 2 ;
            if (reste == 0)
            {
                    pileouface = 'P' ;
            }
            else
            {
                    pileouface = 'F';            
            }
            return(pileouface) ;   
    }
     
     
    ////fonction saisie du joueur
    char saisie (void)
    {
            // déclaration des variables
            char saisi ;
     
            // début de la fonction
            printf ("\nQuelle est votre prediction ?   P (Pile) ou F (Face)") ;
            saisi = getch();
     
            while (saisi != 'P' && saisi != 'p' && saisi != 'F' && saisi != 'F' && saisi != 'f')
                    saisi = getch();
     
            if (saisi == 'p')
                    saisi = 'P' ;
     
            if (saisi == 'f')
                    saisi = 'F' ;                                                         
     
            return (saisi);     
    }
     
    ////fonction de comparaison
    int comparaison(char vecteur_ordi [15] , char vecteur_prop [15], int nb_essais)
    {
            //ce n'est que la comparaison entre joueur et ordi 
     
            //déclaration des variables de la deuxième fonction
            int nb_ok = 0;
            int i =0;
     
            while (i< nb_essais) 
            {  
                    if (vecteur_ordi [i] == vecteur_prop [i])
                    {
                            nb_ok ++ ;
                    }
                    i++;
            }
            return (nb_ok) ;  
    }
     
     
    ///////////////////début du pgm principal////////////////
     
    int main(void)
    {
            srand(time(NULL)) ;                                                           //initialisation du random 
     
            char chx = 'B' ;
            char saisi ;
            char choix;  
            int essais = 0 ;
            char ordi [15] ;
            char joueur [15] ;
            int ok = 0 ;
     
            chx = affichage1(essais, joueur, ordi);
     
            while (chx != 'N' && chx != 'n' && chx != 'Q' &&chx != 'q')
                    chx = affichage1(essais, joueur, ordi);
     
            if (chx == 'Q' || chx == 'q')
                    affichage2 (essais , ordi , joueur , ok);
            system("cls");
            printf ("\n  Appuyez sur une touche pour continuer la fermeture de la fenetre. Merci et a bientot.");
     
     
     
            if (chx == 'N' || chx == 'n')
            {                             
     
                    while ( ((chx == 'N') || (chx == 'n') || (chx == 'L') || (chx == 'l')) && (essais < 15)) 
                    {
                            system ( "cls" ) ;
                            choix = saisie () ;                        
                            joueur [essais] = choix;        
                            choix = pileface ();
                            ordi [essais] = choix ;  
                            essais ++ ;  
                            ok = comparaison (ordi , joueur, essais);
                            chx = affichage1 (essais, joueur, ordi) ;
     
                            while (chx != 'N' && chx != 'n' && chx != 'L' && chx != 'l' &&chx != 'Q' && chx != 'q')
                                    chx = affichage1(essais, joueur, ordi);
     
     
     
     
                            if (chx == 'Q' || chx == 'q')
                            {
                                    affichage2 (essais , ordi , joueur , ok) ;
                                    system("cls");
                                    printf ("\n\n  Appuyez sur une touche pour continuer.");
                                    getch() ;
                            }
     
                            if (chx == 'N' || chx == 'n')
                            {
                                    affichage2 (essais, ordi, joueur, ok) ;                              
                                    essais = 0 ;
                                    ok = 0 ;
                                    system("cls");
                                    printf ("\n\n  Appuyez sur une touche pour continuer.");
                                    getch() ;
     
                            }
     
     
                    }
                    affichage2 (essais, ordi, joueur, ok) ;                                                  
     
            }
     
     
     
            getch();          
     
    }
    et voila le .h

    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
     
    #ifndef LAB5
    #define LAB5
     
     
    #if defined(linux) || defined(__linux__) || defined(unix) || defined (__unix__)
     
    #define mrpropre system("clear")
     
    #else
     
    #define mrpropre system("cls")
     
    #endif
     
    # include <conio.h>
    # include <stdio.h>
    # include <stdlib.h>
    # include <time.h>
     
    char affichage1 (int nb_essais, char joueur [15], char ordi [15]);
    void affichage2 (int nb_essais,char vecteur_ordi[],char vecteur_prop[],int nb_ok);
    char pileface (int rand);
    char saisie (void);
    int comparaison(char vecteur_ordi [15] , char vecteur_prop [15], int nb_essais);
     
    #endif

  2. #2
    Modérateur
    Avatar de ToTo13
    Homme Profil pro
    Chercheur en informatique
    Inscrit en
    Janvier 2006
    Messages
    5 793
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : Chercheur en informatique
    Secteur : Santé

    Informations forums :
    Inscription : Janvier 2006
    Messages : 5 793
    Par défaut
    Bonjour,

    Citation Envoyé par naunau02 Voir le message
    jai un pgm que je doit faire c'est un pile ou face et on doit utilisé les pointeur avec un fichier .h je veux juste demander si mon pgm est bon car apparament il y a bug dans le .c.

    Il nous est plutôt difficile de débugger un programme complet auquel nous n'avons pas participé depuis le début. Surtout avec la multitude de ligne pour gérer l'affichage en console.

    Si c'est un bug, je te conseille de mettre des printf aux endroits stratégiques de ton programme et de vérifier que les valeurs intermédiaires sont correctes.
    Consignes aux jeunes padawans : une image vaut 1000 mots !
    - Dans ton message respecter tu dois : les règles de rédaction et du forum, prévisualiser, relire et corriger TOUTES les FAUTES (frappes, sms, d'aurteaugrafe, mettre les ACCENTS et les BALISES) => ECRIRE clairement et en Français tu DOIS.
    - Le côté obscur je sens dans le MP => Tous tes MPs je détruirai et la réponse tu n'auras si en privé tu veux que je t'enseigne.(Lis donc ceci)
    - ton poste tu dois marquer quand la bonne réponse tu as obtenu.

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    38
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2006
    Messages : 38
    Par défaut
    oui ok merci sinon tu SAIS REGARDER AU PROGRAMME VOIR SI SEST COMME SA QUE L4ON UTILISE LES .h stp merci

  4. #4
    Expert confirmé

    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    10 610
    Détails du profil
    Informations personnelles :
    Âge : 67
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 10 610
    Billets dans le blog
    2
    Par défaut
    eh bien la réponse à ta question est à la fois oui et non

    • oui car il a la structure et contient ce qu'il faut.
    • Non ca en général un .h contenant des déclarations de fonctions n'est PAS utilisé dans le module où ces fonctions sont déclarées.


    Ce que donc on peut faire, c'est un .h qui sera utilisé par ce module ou d'autres contenant les définitions de structures, de constantes, etc...

    Et un .h contenant les définitions de fonctions (qui doit inclure le précédent), mais qui sera utilisé par d'autres.

    Et dans son module à soi, on peut, en tête du fichier, mettre la pré-déclaration des routines si on s'en sert avant leur définition.

  5. #5
    scr
    scr est déconnecté
    Membre éprouvé
    Inscrit en
    Juin 2005
    Messages
    127
    Détails du profil
    Informations forums :
    Inscription : Juin 2005
    Messages : 127
    Par défaut
    Citation Envoyé par souviron34 Voir le message
    Non ca en général un .h contenant des déclarations de fonctions n'est PAS utilisé dans le module où ces fonctions sont déclarées.
    A bon ?

    Citation Envoyé par souviron34 Voir le message
    Ce que donc on peut faire, c'est un .h qui sera utilisé par ce module ou d'autres contenant les définitions de structures, de constantes, etc...
    Et un .h contenant les définitions de fonctions (qui doit inclure le précédent), mais qui sera utilisé par d'autres.
    Je ne vois pas bien l'intérêt de cette philosophie ...

  6. #6
    Membre averti
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    38
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2006
    Messages : 38
    Par défaut
    je dois juste faire un pgm principale en .c et utilisé 1 .h

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

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2003
    Messages : 14 512
    Par défaut
    Citation Envoyé par naunau02 Voir le message
    je dois juste faire un pgm principale en .c et utilisé 1 .h
    Illogic, Cap'tain !

  8. #8
    Membre chevronné Avatar de Pierre Maurette
    Profil pro
    Inscrit en
    Juillet 2002
    Messages
    283
    Détails du profil
    Informations personnelles :
    Âge : 69
    Localisation : France

    Informations forums :
    Inscription : Juillet 2002
    Messages : 283
    Par défaut
    Bonjour,
    Il est difficile d'affirmer qu'une erreur est dans un .c et non .h.
    Normalement vous devez interprêter et corriger les erreurs de compilation, et les warnings, dans l'ordre de leur apparition. Une erreur ou un warning pouvant ne rien signifier tant que les précédents n'ont pas été corrigés.
    A partir de là, ce n'est pas dramatique mais il y a un peu de travail. Je ne suis pas approprié l'analyse du programme, je ne vous signale donc que quelques problèmes évidents, dans le désordre le plus complet.
    - C'est bien de mettre des commentaires, mais évitez les évidences. Décrivez chaque fonction de façon standard, ligne par ligne: nom, paramètres reçus, valeur retournée, action en une phrase. Mettez plutôt ces commentaires à l'attention de l'utilisateur de la fonction dans le .h. A l'exclusion des commentaires de programmation, qui seront si nécessaires dans le corps de la fonction, dans le .c. Préférez un nommage parlant (ce qui n'est pas le cas de affichage1() par exemple) à un commentaire.
    - Je ne sais pas si l'espace entre # et le reste est garanti correct, je suis étonné que ça compile. La norme n'écrit que #include accolé. Peut-être pourriez-vous vous en contenter.
    - Il n'y a pas de statégie absolue pour les #include. Mais avant de tomber sur des références croisées ou des cochonneries de ce genre, appliquez la règle suivante: chaque fichier doit inclure le nécessaire pour qu'il compile seul, en ayant éventuellement ôté les #include, et justre ce nécessaire. Ici vous devez mettre les quatre #include en tête du .c. Si vous avez besoin d'un #include dans un .h, parce que par exemple un type d'un prototype est défini dans une bibliothèque, mettez-le dans le .h ET dans le .c.
    - Tel quel le programme ne compilera pas. Je pense que c'est "char pileface(void)" dans le .h. De plus, le "int rand" était mal choisi, rand étant le nom d'une fonction. Enfin, il me semble que vous devriez faire attention à ne pas utiliser un char comme valeur numérique pour "économiser". Sauf cas particulier comme de grandes quantités de données, ou la nécessité d'un unsigned, ou la compatibilité avec le retour d'une fonction, utiliser à priori un int, puis un unsigned.
    - Il me semble, sous réserve d'étude plus approfondie, que le contrôle de la saisie serait mieux dans affichage1(). Simplement parce que avant même de les structurer dans des tableaux ou des structures (de constantes), vous commencerez à centraliser plus ou moins les 'N', 'L' et 'Q' par exemple. Plus facile et moins dangereux à maintenir.
    - Faites renvoyer un int à main(), EXIT_SUCCESS de <stblib.h>.
    - saisi, dans main(), ne sert à rien. Si c'est "pour plus tard", mettez-le en commentaire, pour parvenir au 0 warning. Ou faites une ligne:
    (void)saisi;
    ça va bluffer votre prof.
    - Même chose, mais peut-être plus inquiétant: les paramètres joueur et ordi de affichage1() ne servent à rien.
    - Evitez peut-être le nom main.c. lab5.c me paraît bien.
    - Bien le guard dans le .h, mais choisissez et une fois pour toute un nommage plus spécifique. LAB5_H par exemple, on trouve des H_LAB5 également. Vous pourriez également mettre un petit commentaire après vos #endif ou même #else. Ici par exemple:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    /* ... */
    #endif /* LAB5_H */

  9. #9
    Membre averti
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    38
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2006
    Messages : 38
    Par défaut
    il compile et tout quoi et en faite je veu surtout savoir si c'est bien comme sa que 'lon utilise les .h

  10. #10
    Membre chevronné Avatar de Pierre Maurette
    Profil pro
    Inscrit en
    Juillet 2002
    Messages
    283
    Détails du profil
    Informations personnelles :
    Âge : 69
    Localisation : France

    Informations forums :
    Inscription : Juillet 2002
    Messages : 283
    Par défaut
    Citation Envoyé par naunau02 Voir le message
    il compile et tout quoi et en faite je veu surtout savoir si c'est bien comme sa que 'lon utilise les .h
    Que voulez-vous ? un résumé qui ne concerne QUE l'inclusion du .h ?
    En plus, si ce que vous nous avez posté compile, il faudrait remettre en doute votre compilateur ou ses réglages.
    Et sur un programme de ce type, un warning signifie que ça ne compile pas.
    Et un programme qui compile et qui fournit le résultat attendu peut être infâme.

  11. #11
    Membre éclairé
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    80
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 80
    Par défaut
    Citation Envoyé par Pierre Maurette Voir le message
    - Je ne sais pas si l'espace entre # et le reste est garanti correct, je suis étonné que ça compile. La norme n'écrit que #include accolé.
    Tu veux dire les exemples donnés par la norme ce qui ne prouve rien.
    On lit toutefois (Norme C99, §6.4 (3))
    Preprocessing tokens can be separated by white space; this consists of comments (described later), or white-space characters (space, horizontal tab, new-line, vertical tab, and form-feed), or both. As described in 6.10, in certain circumstances during translation phase 4, white space (or the absence thereof) serves as more than preprocessing token separation.

    Je crois que la référence au §6.10 fait allusion à l'espace à ne pas placer après un nom de définition d'une macro avec paramètres. Mais une directive comme
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
                     #                  /* toto */          \
                           include <stdio.h>
    est tout à fait valide. D'ailleurs, il suffit de regarder dans la Rationale au §6.10 pour avoir un exemple de ce type. C'est aussi expliqué dans Harbison, §3.2. Les fêtes approchent ...

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

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2003
    Messages : 14 512
    Par défaut
    Citation Envoyé par naunau02 Voir le message
    jai un pgm que je doit faire c'est un pile ou face et on doit utilisé les pointeur avec un fichier .h je veux juste demander si mon pgm est bon car apparament il y a bug dans le .c. Donc je veux xavoir si le .c est bon et si c'est bien comme sa que l'on fait un .h
    Déjà, ça ne compile pas...
    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
     
    Project   : Forums
    Compiler  : GNU GCC Compiler (called directly)
    Directory : C:\dev\forums\
    --------------------------------------------------------------------------------
    Switching to target: default
    Compiling: main.c
    main.c:7: warning: unused parameter 'joueur'
    main.c:7: warning: unused parameter 'ordi'
    main.c: In function `affichage1':
    main.c:11: warning: 'nb_ok' might be used uninitialized in this function
    main.c: In function `pileface':
    main.c:188: error: number of arguments doesn't match prototype
    lab5.h:23: error: prototype declaration
    main.c: In function `main':
    main.c:284: error: too few arguments to function `pileface'
    main.c:257: warning: unused variable `saisi'
    Process terminated with status 1 (0 minutes, 1 seconds)
    3 errors, 4 warnings
    Ton organisation est bâtarde. Soit tu ne fais qu'un seul fichier, soit tu sépares les fonctions dans un autre fichier (*.c) et tu crées le .h correspondant. Il y a donc 3 fichiers.

    http://emmanuel-delahaye.developpez....ganiser_source
    http://emmanuel-delahaye.developpez.....htm#organiser

    Tu utilises des globales non justifiées...

Discussions similaires

  1. [Débutant] vérification d'un programme logique floue
    Par catrina13 dans le forum Signal
    Réponses: 0
    Dernier message: 05/06/2013, 16h41
  2. Vérification automatique de programme shell
    Par kromei dans le forum Shell et commandes GNU
    Réponses: 6
    Dernier message: 14/03/2013, 16h57
  3. Vérification de mon programme
    Par jerdel dans le forum Débuter avec Java
    Réponses: 8
    Dernier message: 30/08/2009, 19h57
  4. Vérification de mon programme
    Par jerdel dans le forum Débuter
    Réponses: 8
    Dernier message: 28/08/2009, 17h31
  5. [vb6] Vérification des programmes actifs
    Par Jivy77 dans le forum VB 6 et antérieur
    Réponses: 3
    Dernier message: 13/06/2006, 16h40

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