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 :

Plus ou moins.exe a cessé de fonctionner


Sujet :

C

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Nouveau membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2014
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2014
    Messages : 7
    Par défaut Plus ou moins.exe a cessé de fonctionner
    Bonjour,

    Comme le problème a été mentionné plusieurs fois, je sais qu'il s'agit à l'intérieur de mon programme de jeu "Plus ou moins" d'un problème de code.. Cependant, j'ai passé plusieurs heures à essayer de trouver la solution, mais sans réussite , pouvez vous m'aider s'il vous plait? Merci d'avance!!

    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
    #include <stdio.h>
    #include <stdlib.h>
    #include <math.h>
     
    int main()
    {
        int nombreJoueurs = 0, nombreAleatoire = 0, nombreEntre = 0, compteur = 0, recommencer = 0;
        printf("Combien de joueurs?\n1 ou 2?\n");
        scanf("%d", nombreJoueurs);
        const int MAX = 100, MIN = 1;
        switch (nombreJoueurs)
        {
        case 1:
            srand(time(NULL));
            nombreAleatoire = (rand() % (MAX - MIN + 1)) + MIN;
        case 2:
            printf("Joueur 1, selectionnez un chiffre de 1 à 100\n");
            scanf("Chiffre choisi %d\n", nombreAleatoire);
        }
        printf("Quel est le nombre?");
        scanf("%d", &nombreEntre);
        if (nombreEntre > nombreAleatoire)
        {
            printf("Moins\n");
            compteur++;
        }
        else if (nombreEntre < nombreAleatoire)
        {
            printf ("Plus\n");
            compteur++;
        }
        else
        {
            compteur++;
            printf("Exact, le nombre était donc: %d\nVous avez gagne en %d essais", nombreAleatoire, compteur);
        }
        while (nombreEntre != nombreAleatoire);
        printf("Recommencer?\n1.Oui\n2.Non\n");
        scanf("%d\n", &recommencer);
        if (recommencer == 1)
        {
            return (main());
        }
    }

  2. #2
    Expert éminent

    Femme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2007
    Messages
    5 202
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Juin 2007
    Messages : 5 202
    Par défaut
    return main() ????

    Quelle horreur! On ne dois normalement pas appeler main.

    Envisage de faire des fonctions spécialisées.
    Par exemple, une fonction plus_ou_moins(int test, int cible), qui retourne -1 si test est plus petit que cible, 1 si test est plus grand que cible, et 0 s'ils sont égaux.

    Une autre qui affiche "plus", "moins" ou "bravo" selon qu'elle reçoivent un argument positif, négatif ou nul.

    Une fonction partie(), qui fait une partie complete, et normalement, se sert des deux précédentes

    ainsi ton main devrait ressembler à un menu principal.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    int main() {
        int encore;
        do {
            partie();
            encore = /*un fonction dédiée pour demander à l'utilisateur sans risque, et retourner 0 s'il veut s'arreter, n'importe quel autre entier pour continuer */
        } while (encore);
        return 0;
    }

  3. #3
    Nouveau membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2014
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2014
    Messages : 7
    Par défaut
    En fait je suis des cours avec un prof, et je n'en suis pas encore aux fonctions, c'est au prochain cours d'aujourd'hui!

    Mais le travail ici consistait à faire cela donc sans d'autres fonctions que main(), et demander au joueur s'il souhaite recommencer à la fin de main(), ainsi que de savoir s'il y a un ou deux joueurs. Le blocage se fait lorsque j'entre le nombre de joueurs.

    Pour le return, ca sera donc provisoire avant de savoir comment utiliser les fonctions spécialisées

  4. #4
    Membre émérite
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2014
    Messages
    345
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Finance

    Informations forums :
    Inscription : Juin 2014
    Messages : 345
    Par défaut
    Bonjour,

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    scanf("%d", nombreJoueurs);
    C'est peut-être dû à ça.

  5. #5
    Expert éminent

    Femme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2007
    Messages
    5 202
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Juin 2007
    Messages : 5 202
    Par défaut
    pas du tout, le probleme est du à ce que le while se termine par un ';' et n'est pas précédé par un "do {...}"
    C'est une boucle infinie qui teste indéfiniment si les nombres sont différents, sans les changer, et le programme plante.

    en pseudo-francais c'est l'équivalent de "tant que nombreEntre n'est pas égal à nombreAleatoire, ne rien faire"

  6. #6
    Nouveau membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2014
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2014
    Messages : 7
    Par défaut
    Merci, cela marche déja mieux! Il y avait le problème des scanf qui ne présentaient pas de & lors de l'annonce de la variable, mais aussi et surtout le do, en effet!

    Un autre problème survient lors du choix du nombre de joueurs, en effet, lorsque je choisi 2, cela me lance le jeu sans avoir à choisir un nombre au départ pour l'un des deux joueurs...

  7. #7
    Membre émérite
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2014
    Messages
    345
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Finance

    Informations forums :
    Inscription : Juin 2014
    Messages : 345
    Par défaut
    Citation Envoyé par leternel Voir le message
    C'est une boucle infinie qui teste indéfiniment si les nombres sont différents, sans les changer, et le programme plante.

    en pseudo-francais c'est l'équivalent de "tant que nombreEntre n'est pas égal à nombreAleatoire, ne rien faire"
    Une boucle infinie ça résulte en un programme qui tourne indéfiniment. Pas en un message du style "truc a cessé de fonctionner".

Discussions similaires

  1. explorer.exe a cessé de fonctionner
    Par Sylvain245 dans le forum Windows 7
    Réponses: 10
    Dernier message: 14/01/2010, 09h49
  2. Programme.exe a cessé de fonctionner
    Par mayyyyya dans le forum C
    Réponses: 1
    Dernier message: 04/06/2009, 12h51
  3. Rave.exe a cessé de fonctionner
    Par BaldeckJ dans le forum EDI
    Réponses: 5
    Dernier message: 11/09/2008, 01h13
  4. ''explorateur exe a cessé de fonctionner ''
    Par bibiou dans le forum Windows Vista
    Réponses: 6
    Dernier message: 05/07/2008, 15h16
  5. Réponses: 5
    Dernier message: 17/02/2008, 18h37

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