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 :

C erreur indétectable


Sujet :

C

  1. #1
    Vestigo
    Invité(e)
    Par défaut C erreur indétectable
    Salut à tous, je suis nouveau sur le forum, j'ai 13 ans je connais un peu de C++, mais on m'a conseillé d'apprendre le C d'abord, donc c'est ce que je fais.

    J'ai fais un petit programme dont j'ai trouvé une partie sur le site (il y'a un cours), mais depuis 2 heure impossible de trouver l'erreur mon compilateur ne détecte rien pourtant.
    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
     
     
     
    #include <stdio.h>
    #include <stdlib.h>
    #include <windows.h>
     
     
    int main(int argc, char *argv[])
    {     
    long nombreMystere1=0,nombreMystere2=0,nombreMystere3=0, nombreEntre = 0; 
         long compteur= 1, niveauDeDifficulte=0 ;
     
         const long MAXF=100,MAXM=200,MAXD=400,MIN=1;
     
    srand(time(NULL));
     
    nombreMystere1=(rand()%(MAXF-MIN+1))+MIN;
     
    nombreMystere2=(rand()%(MAXM-MIN+1))+MIN;
     
    nombreMystere3=(rand()%(MAXD-MIN+1))+MIN;
     
     
    while(niveauDeDifficulte < 1 || niveauDeDifficulte > 3)
     
    {
     
    printf("Choisisser le niveau de difficulte.\n");
    printf("Tapez 1 pour: Niveau facile de 0 a 100\n");
    printf("Tapez 2 pour: Niveau moyen de 0 a 200\n");
    printf("Tapez 3 pour: Niveau difficile de 0 a 400\n");
    scanf("%ld",&niveauDeDifficulte);
     
     
    } 
     
       system("cls");
     
     
        switch (niveauDeDifficulte)
        {
            case 1:
                printf("Vous avez choisis le niveau facile\n\n");
     
     
     
    while(compteur,nombreEntre!=nombreMystere1)
     
    {
     
        printf("Quel est le nombre mystere?");
        scanf("%ld",&nombreEntre);
     
    if(nombreMystere1>nombreEntre)
     
        printf("C'est plus!\n\n\a");
     
     
     
     
     
       else if(nombreMystere1<nombreEntre)
     
        printf("C'est moins!\n\n\a");
     
     
     
        else 
     
        printf("Felicitation vous avez trouve le nombre mystere %ld coup\n\n",compteur);
     
        compteur++;
     
    }
     
    break;
    case 2:
    printf("Vous avez pris le niveau moyen\n\n");
     
    while(compteur,nombreEntre!=nombreMystere2)
    {
    printf("Quel est le nombre mystere?\n");
    scanf("%ld",&nombreEntre);
     
    if(nombreMystere2>nombreEntre)
    printf("C'est plus!\n\n\a");
     
    else if(nombreMystere2<nombreEntre)
    printf("C'est moins!\n\n\a");
     
    else
    printf("Felicitation vous avez trouve le nombre mystere %ld coup\n\n",compteur);
    compteur++;
     
    }
        break;
     
     
        case 3:
        printf("Vous avez pris le niveau difficile\n");
     
    while(compteur,nombreEntre!=nombreMystere3)
     
    {
    printf("Quel est le nombre mystere,\n");
    scanf("%ld",&nombreEntre);
     
    if(nombreMystere3>nombreEntre)
    printf("C'est plus!\n\n\a");
     
    else if(nombreMystere3<nombreEntre)
    printf("C'est moins!\n\n\a");
     
    else
    printf("Felicitation vous avez trouve le nombre mystere %ld coup\n\n",compteur);
     
    }
    break ;
    }
    return 0;
    }
    En fait le problème c'est que la phrase "Felicitation vous avez trouve le nombre mystere ..coup" ne s'affiche pas à l'écran: mon programme se ferme automatiquement.

    Savez vous la solution peut être que je n'ai pas inclut toutes les directive, je sais pas...

    Merci de me répondre.

  2. #2
    Membre émérite Avatar de homeostasie
    Homme Profil pro
    Inscrit en
    Mai 2005
    Messages
    939
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 939
    Par défaut
    Citation Envoyé par Vestigo
    En fait le problème c'est que la phrase "Felicitation vous avez trouve le nombre mystere ..coup" ne s'affiche pas à l'écran: mon programme se ferme automatiquement.
    Mets ceci juste avant le return:


    NB: Evite le scanf et privilégie fgets() accompagnée d'une fonction de conversion en entier. (strtoul par exemple).

  3. #3
    Vestigo
    Invité(e)
    Par défaut
    Merci de ton concour, mais qu'est ce que j'en ai marre j'embetais déjà tous le monde pour un programme en C++, et devine ce qu'était ma faute??devine???
    J'avais oublier aussi. Purée mais c'est pas possibe!! Je crois qu'il exciste des compilateurs qui mettent directement le non?

  4. #4
    Membre Expert Avatar de zooro
    Homme Profil pro
    Développeur Java
    Inscrit en
    Avril 2006
    Messages
    921
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Avril 2006
    Messages : 921
    Par défaut
    Citation Envoyé par Vestigo Voir le message
    Je crois qu'il exciste des compilateurs qui mettent directement le non?
    Non, mais certains EDI font une pause à la fin de l'exécution pour que tu aies le temps de lire la sortie.

  5. #5
    Rédacteur
    Avatar de Franck.H
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2004
    Messages
    6 951
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Service public

    Informations forums :
    Inscription : Janvier 2004
    Messages : 6 951
    Par défaut
    Par ailleurs:
    n'est pas portable, c'est un appel système spécifique à Windows. Pour être portable tu peux obtenir la même chose en faisant:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    printf ("Appuyez sur une touche pour continuer...\n");
    getchar ();
    Mon Site
    Ma bibliothèque de gestion des chaînes de caractères en C

    L'imagination est plus importante que le savoir. A. Einstein

    Je ne répond à aucune question technique par MP, merci d'avance !

  6. #6
    Vestigo
    Invité(e)
    Par défaut
    Ok merci pour tous.

  7. #7
    Membre Expert
    Inscrit en
    Décembre 2004
    Messages
    1 478
    Détails du profil
    Informations forums :
    Inscription : Décembre 2004
    Messages : 1 478
    Par défaut
    Citation Envoyé par Vestigo Voir le message
    Ok merci pour tous.
    Une derniere solution est de lancer ton executable directement depuis la console, ainsi tu es sur qu'elle ne se fermera pas a la fin de ton programme. Sous Windows, la console est accessible sous Demarrer > Executer, puis taper cmd pour obtenir la console. Ensuite, tu te deplaces jusqu'au repertoire de ton executable.

  8. #8
    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 Vestigo Voir le message
    Je crois qu'il existe des compilateurs qui mettent directement le non?
    Code::Blocks fait ça.

Discussions similaires

  1. Erreur javascript indétectable ?
    Par opeo dans le forum Général JavaScript
    Réponses: 9
    Dernier message: 08/01/2008, 15h26
  2. Erreur fréquente avec ASP et IIS
    Par Community Management dans le forum ASP
    Réponses: 2
    Dernier message: 11/02/2004, 22h20
  3. Réponses: 2
    Dernier message: 27/05/2002, 19h46
  4. erreur IDL:omg.org/CORBA/MARSHAL:1.0
    Par Pinggui dans le forum CORBA
    Réponses: 3
    Dernier message: 13/05/2002, 15h05
  5. [Kylix] Erreur objet
    Par Anonymous dans le forum EDI
    Réponses: 1
    Dernier message: 22/03/2002, 09h41

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