Partage
  • Partager sur Facebook
  • Partager sur Twitter

gros probléme

je vais craquer la!

2 décembre 2006 à 17:04:03

bonjour tout le monde oua depuis tout à l'heure je m'énnerve àprés mon programme et alors en fait quand je le lance dans la console,j'entre mon numero de niveau 1,2,3 ou 4 et donc je choisi le niveau 1 par éxemple et quand je rentre un nombre entre 1 et 20 (pour le niveau 1) ba normalement ca doit me méttre c'est plus,c'est moin ba non la ca me met "projet3 doit fermer merci de bien vouloir nous éxcusez"
merci de bien vouloir m'aider je vous donne mon code:

#include <stdio.h>
#include <stdlib.h>
#include <time.h>

int main(int argc, char *argv[])
{
    long ChoixNiveau=0;
    long NombreEntrer=0;
    long NombreMystere=0;
printf("bonjour et bienvenue sur le jeu du plus ou du moin nouvelle version!\n");
printf("quel niveau voulez vous choisir?\n\n\n");
printf("1:niveau facile!\n");
printf("2:niveau moyen!\n");
printf("3:niveau difficile!\n");
printf("4:niveau tres difficile!\n\n\n");
printf("quel est votre choix?");

scanf("%1d", &ChoixNiveau);

if (ChoixNiveau==1)//si on choisi le niveau 1 c'est compris entre 1 et 20!
{
       


printf("daccord,le nombre est compris entre 1 et 20!");

do
{

/* toutes tes conditions, genre si plus grand, plus petit... */

}while (NombreEntrer != NombreMystere); /* boucle do while, que tu a vu si tu en est au tp du plus grand plus petit*/

}
if (NombreEntrer > NombreMystere)
{
printf("c'est moin desole");
}
else if (NombreEntrer < NombreMystere)
{
printf("c'est plus desole");
}

       
if (ChoixNiveau==2)//si on choisis le niveau 2 alors les nombres sont compris entre 1 et 80
 
{
                                   const long MAX = 80, MIN = 1;
                       srand(time(NULL));
    NombreMystere = (rand() % (MAX - MIN + 1)) + MIN;
    printf("veillez entrer un nombre entre 1 et 80");

}
     
scanf("%ld", NombreEntrer);
if (NombreEntrer>NombreMystere)
{
printf("c'est moin desole!\n");
}
else if (NombreEntrer<NombreMystere)
{
printf("c'est plus desole!\n");
}








    system("PAUSE");
}
  • Partager sur Facebook
  • Partager sur Twitter
2 décembre 2006 à 17:08:41

Ok, t'es juste idiot. Relis-le peut-être (spécialement les commentaires).
  • Partager sur Facebook
  • Partager sur Twitter
2 décembre 2006 à 17:11:25

Citation : remram44

Ok, t'es juste idiot.



Moarf maorf moarf :p je suis presque d'accord mais en plus réspectueux :)

Bon en gros, je te conseille de RELIRE ton code parce que c'est assez drole ce que tu as a fait la XD

J'ai l'impression que t'a foutu des bouts de code un peu partout en esperant que tout ce range au moment venu ^^
  • Partager sur Facebook
  • Partager sur Twitter
2 décembre 2006 à 17:20:51

petit , gros problème avec la fonction pour créé le nombre mystère, je rejoins l'avis des autres
  • Partager sur Facebook
  • Partager sur Twitter
2 décembre 2006 à 18:06:50

Sans parler du fait que c'est ton deuxième topic traitant du même sujet ... :-°
  • Partager sur Facebook
  • Partager sur Twitter
2 décembre 2006 à 18:22:08

Je veux pas être offensant mais te montrer toute les erreurs de ton programme me prendrais des semaines et toutes tes fautes d'orthographe des années ...

EDIT : En plus des fautes de style à chaque ligne et surtout le maudit
system("pause");
...
  • Partager sur Facebook
  • Partager sur Twitter
2 décembre 2006 à 18:46:04

D'accord avec les autres...
Relis les cours, et surtout ton code...

Déjà, rends-le plus lisible, indenté :



#include <stdio.h>
#include <stdlib.h>
#include <time.h>

int main(int argc, char *argv[])
{
    long ChoixNiveau=0;
    long NombreEntrer=0;
    long NombreMystere=0;

    // J'ai supprimé 2/3 erreurs d'othographe
    printf("Bonjour et bienvenue sur le jeu du plus ou du moins nouvelle version! \n");
    printf("Quel niveau voulez-vous choisir? \n\n\n");
    printf("1:Niveau facile! \n");
    printf("2:Niveau moyen! \n");
    printf("3:Niveau difficile! \n");
    printf("4:Niveau Tres difficile! \n\n\n");
    printf("Quel est votre choix ?");

    scanf("%ld", &ChoixNiveau); // Il faut mettre %ld (L minuscule) pas %1d !!!

    if (ChoixNiveau==1)//si on choisi le niveau 1 c'est compris entre 1 et 20!
    {
       
        printf("daccord,le nombre est compris entre 1 et 20!");

        do
        {

        // Ici t'as rien mis !!! Ca te choque pas ?

        }while (NombreEntrer != NombreMystere);
        // Boucle infinie

    }

    // Pourquoi tu fais ce test de conditions à ce moment-là ???
    // L'utilisateur n'a encore rentré aucun nombre !!!
    if (NombreEntrer > NombreMystere)
    {
        printf("c'est moin desole");
    }
    else if (NombreEntrer < NombreMystere)
    {
        printf("c'est plus desole");
    }

 
    if (ChoixNiveau==2)//si on choisis le niveau 2 alors les nombres sont compris entre 1 et 80
 
    {
        const long MAX = 80, MIN = 1; // Déclaration d'une variable dans un bloc If...
                                      // Je ne sais plus trop si c'est autorisé en C...
        srand(time(NULL));
        NombreMystere = (rand() % (MAX - MIN + 1)) + MIN;
        printf("veillez entrer un nombre entre 1 et 80");

    }
   
    // Tu fais enfin un scanf() pour nombreEntrer (on dit nombre entré au passage) ...
    // mais il ne sert à peu près à rien puisque tu ne le fais qu'une fois, il n'est pas dans
    // une boucle.
    // De plus tout ce passage n'est même pas compris dans un bloc If ...
    scanf("%ld", NombreEntrer);

    if (NombreEntrer>NombreMystere)
    {
        printf("c'est moin desole!\n");
    }
    else if (NombreEntrer<NombreMystere)
    {
        printf("c'est plus desole!\n");
    }

    system("PAUSE");

}



Je t'ai corrigé 2/3 trucs mais je n'ai pas modifié la structure principale de ton programme. A toi de le faire.
Enfin ca devrait être plus clair maintenant. Normalement...
Relis les cours...
  • Partager sur Facebook
  • Partager sur Twitter
2 décembre 2006 à 19:34:22

c'est bon pas besoi de m'agrésser comme cela.
  • Partager sur Facebook
  • Partager sur Twitter
2 décembre 2006 à 19:37:24

Aya2: Si c'est autorisé de déclarer des variables en tête de bloc mais pas ailleurs.
  • Partager sur Facebook
  • Partager sur Twitter
2 décembre 2006 à 19:37:42

c'est bon pas besoi de m'agrésser comme cela.

c'est quand même bizard ca me met toujours que mon projet doit fermer.
  • Partager sur Facebook
  • Partager sur Twitter
2 décembre 2006 à 19:54:08

Citation : clanki

c'est bon pas besoi de m'agrésser comme cela.

c'est quand même bizard ca me met toujours que mon projet doit fermer.


Fais voir le nouveau code.
  • Partager sur Facebook
  • Partager sur Twitter
2 décembre 2006 à 20:03:17

#include <stdio.h>
#include <stdlib.h>
#include <time.h>

int main(int argc, char *argv[])
{
    long ChoixNiveau=0;
    long NombreEntrer=0;
    long NombreMystere=0;

    // J'ai supprimé 2/3 erreurs d'othographe
    printf("Bonjour et bienvenue sur le jeu du plus ou du moins nouvelle version! \n");
    printf("Quel niveau voulez-vous choisir? \n\n\n");
    printf("1:Niveau facile! \n");
    printf("2:Niveau moyen! \n");
    printf("3:Niveau difficile! \n");
    printf("4:Niveau Tres difficile! \n\n\n");
    printf("Quel est votre choix ?");

    scanf("%ld", &ChoixNiveau); // Il faut mettre %ld (L minuscule) pas %1d !!!

    if (ChoixNiveau==1)//si on choisi le niveau 1 c'est compris entre 1 et 20!
    {
       
        printf("daccord,le nombre est compris entre 1 et 20!");

        do
        {

        // Ici t'as rien mis !!! Ca te choque pas ?

        }while (NombreEntrer != NombreMystere);
        // Boucle infinie

    }

    // Pourquoi tu fais ce test de conditions à ce moment-là ???
    // L'utilisateur n'a encore rentré aucun nombre !!!
    if (NombreEntrer > NombreMystere)
    {
        printf("c'est moin desole");
    }
    else if (NombreEntrer < NombreMystere)
    {
        printf("c'est plus desole");
    }

 
    if (ChoixNiveau==2)//si on choisis le niveau 2 alors les nombres sont compris entre 1 et 80
 
    {
        const long MAX = 80, MIN = 1; // Déclaration d'une variable dans un bloc If...
                                      // Je ne sais plus trop si c'est autorisé en C...
        srand(time(NULL));
        NombreMystere = (rand() % (MAX - MIN + 1)) + MIN;
        printf("veillez entrer un nombre entre 1 et 80");

    }
   
    // Tu fais enfin un scanf() pour nombreEntrer (on dit nombre entré au passage) ...
    // mais il ne sert à peu près à rien puisque tu ne le fais qu'une fois, il n'est pas dans
    // une boucle.
    // De plus tout ce passage n'est même pas compris dans un bloc If ...
    scanf("%ld", NombreEntrer);

    if (NombreEntrer>NombreMystere)
    {
        printf("c'est moin desole!\n");
    }
    else if (NombreEntrer<NombreMystere)
    {
        printf("c'est plus desole!\n");
    }

    system("PAUSE");

}
  • Partager sur Facebook
  • Partager sur Twitter
2 décembre 2006 à 20:05:57

Déjà rien qu'en parcourant le code, on tombe sur ça


scanf("%ld", NombreEntrer);


Fais l'effort de relire !
  • Partager sur Facebook
  • Partager sur Twitter
2 décembre 2006 à 20:07:26

ba j'ai marqué %ld ca vz pas?
  • Partager sur Facebook
  • Partager sur Twitter
2 décembre 2006 à 20:14:35

Citation : clanki

ba j'ai marqué %ld ca vz pas?

Pour la millième fois, scanf attend une adresse (tu verras ça plus tard, pour "cé koi 1 adress lololol") tu lui passes une variable. Donc, en gros, tu dois mettre le symbole & devant le nom de ta variable.
  • Partager sur Facebook
  • Partager sur Twitter
2 décembre 2006 à 20:17:17

Citation : clanki

c'est bon pas besoi de m'agrésser comme cela.



Tu ouvres un premier topic : http://www.siteduzero.com/forum-83-94251-p1-probleme-de-mini-jeu.html

On te dit te corriger tes erreurs, tu ne nous écoutes qu'à moitié.

Tu ouvre un deuxième topic (celui-ci) pour poser exacetment la même question, avec le code de départ toujours pas corrigé (du moins par rapport à ce qu'on t'a dit).

Les gens te répondent, et encore une fois tu zappe leur réponses et tu repost toujours le même code.

Alors là, je suis désolé mais c'est moi qui vais craquer (cf : sous-titre du topic) t_t

Vivement qu'un modo/admin passe par là et te mette un avertissement =_=
  • Partager sur Facebook
  • Partager sur Twitter
2 décembre 2006 à 20:24:56

bon la ca marche à peu prés mais il doit y avoir un probléme de boucle.
  • Partager sur Facebook
  • Partager sur Twitter
2 décembre 2006 à 23:59:26

Voilà j'ai super beaucoup amélioré ton programme, maintenant il à les nouvelles fonctionnalités suivantes :
- Il se compile
- Il se lance
- Il n'a plus de fautes d'orthographes
- Il n'a plus de fautes d'indentations (je me suis basé sur la version de Aya2)

J'ai corrigé les problèmes suivants :
- Suppression des fautes d'orthographe
- Ajout de \n
- Ajout de \ pour les apostrophes
- Remplacement de l'horrible system("pause") par sn équivalent portable
- Passage du programme indent

#include <stdio.h>
#include <stdlib.h>
#include <time.h>

int
main(int argc, char *argv[])
{
    long            ChoixNiveau = 0;
    long            NombreEntre = 0;
    long            NombreMystere = 0;

    // J'ai supprimé 2/3 erreurs d'othographe
    printf
        ("Bonjour et bienvenue sur le jeu du plus ou du moins nouvelle version ! \n");
    printf("Quel niveau voulez-vous choisir ? \n\n\n");
    printf("1:Niveau facile ! \n");
    printf("2:Niveau moyen ! \n");
    printf("3:Niveau difficile ! \n");
    printf("4:Niveau Tres difficile ! \n\n\n");
    printf("Quel est votre choix ?\n");

    scanf("%ld", &ChoixNiveau); // Il faut mettre %ld (L minuscule) pas
    // %1d !!!

    if (ChoixNiveau == 1)       // si on choisi le niveau 1 c'est compris
        // entre 1 et 20 !
    {

        printf("d\'accord, le nombre est compris entre 1 et 20 !\n");

        do {

            // Ici t'as rien mis !!! Ca te choque pas ?

        } while (NombreEntre != NombreMystere);
        // Boucle infinie

    }
    // Pourquoi tu fais ce test de conditions à ce moment-là ???
    // L'utilisateur n'a encore rentré aucun nombre !!!
    if (NombreEntre > NombreMystere)
        printf("c\'est moins desole\n");        // Ton apostrophe ferme
    // les guillemets ... tu
    // doit mettre un \
    else if (NombreEntre < NombreMystere)
        printf("c\'est plus desole\n");


    if (ChoixNiveau == 2)       // Si on choisis le niveau 2 alors les
        // nombres sont compris entre 1 et 80

    {
        const long      MAX = 80,
            MIN = 1;            // Déclaration d'une variable dans un
        // bloc If...
        // C'est interdit en C
        srand(time(NULL));
        NombreMystere = (rand() % (MAX - MIN + 1)) + MIN;
        printf("Veuillez entrer un nombre entre 1 et 80.\n");

    }
    // Tu fais enfin un scanf() pour nombreEntrer (on dit nombre entré au
    //
    // passage) ...
    // mais il ne sert à peu près à rien puisque tu ne le fais qu'une
    // fois, il n'est pas dans
    // une boucle.
    // De plus tout ce passage n'est même pas compris dans un bloc If ...
    scanf("%ld", NombreEntre);

    if (NombreEntre > NombreMystere) {
        printf("c\'est moins desole!\n");
    } else if (NombreEntre < NombreMystere) {
        printf("c\'est plus desole!\n");
    }

    printf("Appuyez sur Entree pour continuer...\n");
    getchar();

    return EXIT_SUCCESS;        // C'est gravissime que tu n'ai pas mis
    // ça, je sais que tu ne connais pas
    // EXIT_SUCCESS mais met au moins return 0;.
}


Maintenant il ne reste plus qu'à corriger l'idiotie de l'algorythme mais pour cela il vaudrait mieux tout recommencer, ce serait plus rapide et ça reviendrait au même.
  • Partager sur Facebook
  • Partager sur Twitter
3 décembre 2006 à 8:01:38

bon ba vous savez quoi?
je recommence tout!!
mais pouvez vous m'aider tout le long de mon petit projet?
  • Partager sur Facebook
  • Partager sur Twitter
3 décembre 2006 à 8:13:55

comment pourrait-ils t'aider si tu en les lis pas ?
le code que aya t'avait bien gentiment commenté , tu ne l'as pas lus !
tu te contente d'un copier/coller -_-'
Jamais tu progresseras comme ça !
si tu veut qu'on t'aide comme ça, c'est facile, on te fait le code , on le balance , tu fais 2 cliques droits et paf ! un programme qui marche ! Tu seras satisfait de toi ? non !
alors lis les réponses et fait l'effort de recopier le code à la main ... sa t'aidera peut-être à retenir, et sa t'évitera de ne pas le lire -_-'
  • Partager sur Facebook
  • Partager sur Twitter
3 décembre 2006 à 8:43:18

J'ai un bon lien à te donner qui pourrait t'aider énormément :
http://www.siteduzero.com/tuto-3-8-0-apprenez-a-programmer-en-c.html.

Kurapix
  • Partager sur Facebook
  • Partager sur Twitter
3 décembre 2006 à 9:31:54


Met ceci en haut de ton code(au début de main quand même :D )
et change la valeur de MAX (donc fais en une variable, et MIN reste une constante )
pour chaque niveau ;)


const long MAX=80, MIN=1;
        srand(time(NULL));
        NombreMystere = (rand() % (MAX - MIN + 1)) + MIN;
  • Partager sur Facebook
  • Partager sur Twitter
3 décembre 2006 à 9:48:20

oui daccord merci.

pour l'information,jamais je ne me suis permis de copier coller un code préparé je trouve que je n'ai aucun honneur si je fais ca jamais j'ai fais cela et je ne le ferais jamais!
  • Partager sur Facebook
  • Partager sur Twitter
3 décembre 2006 à 10:09:35

Citation : clanki

oui daccord merci.


pour l'information,jamais je ne me suis permis de copier coller un code préparé je trouve que je n'ai aucun honneur si je fais ca jamais j'ai fais cela et je ne le ferais jamais!


Pour l'instant c'ets la seule chose que tu as fait! :lol:

J'ai une question, est ce que tu as lu les commentaire que les gentils zeros on inséré dans ton code? Parce que tu ferais bien de les lire et de faire un shéma de ton programme sur papier tu verrais mieux tes énormes erreurs!
  • Partager sur Facebook
  • Partager sur Twitter
3 décembre 2006 à 10:46:01

oui tout à fait j'ai tout lue mais je sigale a ces gentillent zeros que je n'est rien compris!
  • Partager sur Facebook
  • Partager sur Twitter
3 décembre 2006 à 11:30:25

attends ...

"// Ici t'as rien mis !!! Ca te choque pas ?"
"// Pourquoi tu fais ce test de conditions à ce moment-là ???
// L'utilisateur n'a encore rentré aucun nombre !!!"
"/ Tu fais enfin un scanf() pour nombreEntrer (on dit nombre entré au
//
// passage) ...
// mais il ne sert à peu près à rien puisque tu ne le fais qu'une
// fois, il n'est pas dans
// une boucle.
// De plus tout ce passage n'est même pas compris dans un bloc If ..."

tout ça c'est du français ... tu ne comprends donc pas le français ?
tu vois "Ici t'as rien mis !!! Ca te choque pas" tu te dit pas qu'il faudrait peut-être y mettre quelquechose ?
on te demande que lcode marche pas ... tu rebalance le code avec les commentaires sans avoir rien touché !

Citation : Pas de titre

mais je sigale a ces gentillent zeros que je n'est rien compris!


gentillent ? du verbe gentiller ? je gentille , tu gentilles, il gentille, nous gentillons, vous gentillez , ils gentillent ?

  • Partager sur Facebook
  • Partager sur Twitter
6 décembre 2006 à 21:08:13

Citation : clanki

oui tout à fait j'ai tout lue mais je sigale a ces gentillent zeros que je n'est rien compris!


  • La sigale ayant chanté tout l'été se trouva fort dépourvue quand la bise fut venue ...
  • On dit je ne suis rien compris ...
    Ou peut-être que tu voulais utiliser un autre verbe ?


Plus serieusement, je pense qu'à la limite tu devrais voir la correction de mateo puis recommencer quelques temps après.
  • Partager sur Facebook
  • Partager sur Twitter
6 décembre 2006 à 21:15:08

clanki > si tu pouvais écrire mieux çà nous aiderait beaucoup.
Et la prochaine fois fait un titre plus explicite !
  • Partager sur Facebook
  • Partager sur Twitter