# Je me mets au C

**URL:** <https://www.debian-fr.org/t/je-me-mets-au-c/8416>\
**Category:** Pause Café\
**Created:** [Février 20, 2016, 4:06 UTC](https://www.debian-fr.org/t/je-me-mets-au-c/8416 "2016-02-20T16:06:38Z")\
**Posts on this page:** 20\
**Page:** 10

<div class="post-metadata">

**Author:** ![Pingoo\_Pat](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/p/d2c977/32.png) [@Pingoo\_Pat](https://www.debian-fr.org/u/Pingoo_Pat)\
**Post date:** [Février 20, 2016, 4:07 UTC](https://www.debian-fr.org/t/je-me-mets-au-c/8416/181 "2016-02-20T16:07:40Z")

</div>

Ce que Mat essaye de t’expliquer dans l’étape 2, c’est que ton main devrait ressembler à quelque chose comme ça (c’est juste pour illustrer, faut pas suivre à la lettre) :

```auto
int main()
{
  int nombre_entre_par_l_utilisateur;
  int valeur_retour;

  printIntro();
  nombre_entre_par_l_utilisateur = captureChiffre();
  valeur_retour = traitementChiffre(nombre_entre_par_l_utilisateur);

  return(valeur_retour);
}
```

et définir tes fonctions ailleurs, par exemple :

```auto
void printIntro()
{
  printf("Je m'appelle camembert et j'aime les fraises cultivées sur le dos des loutres\n");
}

int captureChiffre()
{
  [...] (dont tes scanfs);
}

int traitementChiffre(int nombre_choisi)
{
 [...]
}
```

= “coder sous forme de fonctions séparées du main, que tu vas appeler ensuite avec les bons arguments dans le main”.

De cette manière, ça sera nettement plus lisible et efficace comme code.

Ce qui se passe là, c’est que tu cours plusieurs lièvres à la fois. ^^

edit : pour ton problème, si je t’aide plus, je te dis la solution… ;p google + scanf + tampon ;p

---

<div class="post-metadata">

**Author:** ![mattotop](https://www.debian-fr.org/user_avatar/www.debian-fr.org/mattotop/32/3942_2.png) [@mattotop](https://www.debian-fr.org/u/mattotop)\
**Post date:** [Février 20, 2016, 4:07 UTC](https://www.debian-fr.org/t/je-me-mets-au-c/8416/182 "2016-02-20T16:07:40Z")

</div>

pour l’instant, oublies l’etape 2 et 3.  
etape 1: tu ne precises pas les conditions de sortie de ta boucle.  
Je remets un peu en forme, voilà ce que tu fais:

`choix = renvoieChoix
autreCalcul = 'o'
tant que autreCalcul = 'o' faire {
    au cas ou choix vaut {
        1 : faireAddition
        2 : faireSoustraction
        3 : faireMultiplication
        4 : faireDivision
        sinon: afficheErreurChoix
   }
   autreCalcul = renvoieAutreCalcul
}`  
alors remarques/questions:

- combien de fois va être executée choix = renvoieChoix ?
- faireAddition, faireSoustraction, faireMultiplication, faireDivision n’auraient pas par hasard une similarité dans leur comportement ?
- (plus subtil mais que tu comprendras mieux si tu reponds à la précèdente) renvoieAutreCalcul n’est pas un peu spécifique ? est ce qu’une fonction qui prend une chaine de caractère et renvoie vrai ou faux selon ce qu’on répond ne serait pas plus utile pour plein d’autres trucs plus tard ? Si tu vois ce que je veux te dire: que donne ton algorithme une fois modifié avec cette fonction ?

---

<div class="post-metadata">

**Author:** ![wavesound](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/w/54ee81/32.png) [@wavesound](https://www.debian-fr.org/u/wavesound)\
**Post date:** [Février 20, 2016, 4:07 UTC](https://www.debian-fr.org/t/je-me-mets-au-c/8416/183 "2016-02-20T16:07:41Z")

</div>

- Une infinité de fois dans la boucle si celle-ci n’est pas fermée (et donc que l’utilisateur ne saisis pas autre chose que o) ?

- Si, elles font toutes partie du switch ?

- Euh… Je crois que j’ai mal répondu à la deuxième question, alors je bloque un peu.

---

<div class="post-metadata">

**Author:** ![mattotop](https://www.debian-fr.org/user_avatar/www.debian-fr.org/mattotop/32/3942_2.png) [@mattotop](https://www.debian-fr.org/u/mattotop)\
**Post date:** [Février 20, 2016, 4:07 UTC](https://www.debian-fr.org/t/je-me-mets-au-c/8416/184 "2016-02-20T16:07:42Z")

</div>

[quote=“wavesound”]- Une infinité de fois dans la boucle si celle-ci n’est pas fermée (et donc que l’utilisateur ne saisis pas autre chose que o) ?[/quote]non et pourquoi non ? relis ce que tu dis en gras et trouves pourquoi c’est faux.[quote=“wavesound”]- Si, elles font toutes partie du switch ?[/quote]non.[quote=“wavesound”]- Euh… Je crois que j’ai mal répondu à la deuxième question, alors je bloque un peu.[/quote]réponds bien aux deux premières d’abord.

---

<div class="post-metadata">

**Author:** ![wavesound](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/w/54ee81/32.png) [@wavesound](https://www.debian-fr.org/u/wavesound)\
**Post date:** [Février 20, 2016, 4:07 UTC](https://www.debian-fr.org/t/je-me-mets-au-c/8416/185 "2016-02-20T16:07:42Z")

</div>

Faux car choix = renvoieChoix n’est pas dans la boucle ?

---

<div class="post-metadata">

**Author:** ![mattotop](https://www.debian-fr.org/user_avatar/www.debian-fr.org/mattotop/32/3942_2.png) [@mattotop](https://www.debian-fr.org/u/mattotop)\
**Post date:** [Février 20, 2016, 4:07 UTC](https://www.debian-fr.org/t/je-me-mets-au-c/8416/186 "2016-02-20T16:07:42Z")

</div>

[quote=“wavesound”]Faux car choix = renvoieChoix n’est pas dans la boucle ?[/quote]déjà, OK pour ma première question. Tu en déduis donc qu’il faut mettre cette opération dans la boucle.  
Application:  
écris une fonction en C (toute seule) renvoieChoix qui ne prend pas d’argument et qui renvoie juste comme résultat le choix.

---

<div class="post-metadata">

**Author:** ![wavesound](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/w/54ee81/32.png) [@wavesound](https://www.debian-fr.org/u/wavesound)\
**Post date:** [Février 20, 2016, 4:07 UTC](https://www.debian-fr.org/t/je-me-mets-au-c/8416/187 "2016-02-20T16:07:42Z")

</div>

Oula ! A chaud comme ça… Heu, à vrai dire je suis pas vraiment familiarisé avec le “français moyen” ou bien le “plan de travail” si tu veux.

Je fais tout d’une traite.

---

<div class="post-metadata">

**Author:** ![mattotop](https://www.debian-fr.org/user_avatar/www.debian-fr.org/mattotop/32/3942_2.png) [@mattotop](https://www.debian-fr.org/u/mattotop)\
**Post date:** [Février 20, 2016, 4:07 UTC](https://www.debian-fr.org/t/je-me-mets-au-c/8416/188 "2016-02-20T16:07:43Z")

</div>

non, là avant de passer à ma deuxiême remarque, isole et ecris juste la fonction renvoieChoix, si tu as compris ce qu’il faut mettre dedans.

---

<div class="post-metadata">

**Author:** ![Pingoo\_Pat](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/p/d2c977/32.png) [@Pingoo\_Pat](https://www.debian-fr.org/u/Pingoo_Pat)\
**Post date:** [Février 20, 2016, 4:07 UTC](https://www.debian-fr.org/t/je-me-mets-au-c/8416/189 "2016-02-20T16:07:43Z")

</div>

T’as pensé à faire prof, Mat ? 😛

C’est meugnon tout ça 😛

---

<div class="post-metadata">

**Author:** ![mattotop](https://www.debian-fr.org/user_avatar/www.debian-fr.org/mattotop/32/3942_2.png) [@mattotop](https://www.debian-fr.org/u/mattotop)\
**Post date:** [Février 20, 2016, 4:07 UTC](https://www.debian-fr.org/t/je-me-mets-au-c/8416/190 "2016-02-20T16:07:43Z")

</div>

[quote=“Pingoo Pat”]T’as pensé à faire prof, Mat ? 😛 (…)[/quote]Oui, et j’ai fait: trop de stress.

---

<div class="post-metadata">

**Author:** ![wavesound](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/w/54ee81/32.png) [@wavesound](https://www.debian-fr.org/u/wavesound)\
**Post date:** [Février 20, 2016, 4:07 UTC](https://www.debian-fr.org/t/je-me-mets-au-c/8416/191 "2016-02-20T16:07:43Z")

</div>

Roh, je suis paumé. 😆

Non non, je baisse pas les bras, attendez de voir ce que j’aurai codé entre ce matin et ce soir ! 😉

---

<div class="post-metadata">

**Author:** ![mattotop](https://www.debian-fr.org/user_avatar/www.debian-fr.org/mattotop/32/3942_2.png) [@mattotop](https://www.debian-fr.org/u/mattotop)\
**Post date:** [Février 20, 2016, 4:07 UTC](https://www.debian-fr.org/t/je-me-mets-au-c/8416/192 "2016-02-20T16:07:44Z")

</div>

tiens de la lecture:  
[fr.wikibooks.org/wiki/Programmation\_C](http://fr.wikibooks.org/wiki/Programmation_C)  
en particulier pour comprendre ma dernière sous question pour faire une fonction:  
[fr.wikibooks.org/wiki/Programmat … ns\_et\_proc](http://fr.wikibooks.org/wiki/Programmation_C/Fonctions_et_proc)édures

---

<div class="post-metadata">

**Author:** ![wavesound](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/w/54ee81/32.png) [@wavesound](https://www.debian-fr.org/u/wavesound)\
**Post date:** [Février 20, 2016, 4:07 UTC](https://www.debian-fr.org/t/je-me-mets-au-c/8416/193 "2016-02-20T16:07:44Z")

</div>

Merci. 😉  
Je vais aller voir ça, mais avant…

Réussir à demander de rejouer avec une demande du niveau de difficulté choisi également lorsqu’on rejoue. Fiou, ça fait deux heures que je suis dessus, à force de corriger et de recorriger…  
Mais toujours impossible de demander de rejouer… Donc bien-sûr impossible de rejouer avec le niveau de difficulté voulu…

Attention, c’est l  
GNU General Public License 2.0 \*/

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

int main(void)

{

```
// Déclare les variables nécessaires
long difficulte = 0;
long nombreMystere = 0, nombreEntre = 0;
long MAX = 0;
long MIN = 0;
char rejouer = 'o';
// Fin (Déclare les variables nécessaires)

// Un petit menu
// Fin (Un petit menu)    
printf("Choisissez votre niveau de difficulté.\n\n1. Très facile. Nombre de 1 à 10.\n2. Facile. Nombre de 1 à 50.\n3. Moyen. Nombre de 1 à 100.\n4. Difficile. Nombre de 1 à 500.\n5. Très difficile. Nombre de 1 à 1000.\n6. Démentiel. Nombre de 1 à 10000.\n\nTapez le nombre correspondant à votre choix : ");
scanf("%ld", &difficulte);
printf("\n");
{
    // Switch
    switch (difficulte)
    {
        // Très facile. Nombre de 1 à 10
        case 1:
            MAX = 10;
            MIN = 1;
            printf("Vous avez choisi de jouer en mode très facile.\nLe nombre tiré au sort sera compris entre 1 et 10.\n\n");
            // Génération d'un nombre aléatoire
            srand(time(NULL));  
            nombreMystere = (rand() % (MAX - MIN + 1)) + MIN;
            // Fin (Génération d'un nombre aléatoire)
            // La boucle qui ne s'arrêtera que lors de la saisie du bon nombre
            do 
            {        
                printf("Quel nombre pensez-vous que j'ai choisi ? ");
                scanf("%ld", &nombreEntre);
                if (nombreMystere > nombreEntre)
                {
                    printf("C'est supérieur.\n\n");
                }
                else if (nombreMystere < nombreEntre)
                {
                    printf("C'est inférieur.\n\n");
                }
                else
                {
                    printf("Bien joué, c'est exact !\n\n");
                }
            } 
            while (nombreEntre != nombreMystere);
            break;
        // Fin (La boucle qui ne s'arrêtera que lors de la saisie du bon nombre)
        // Fin (Très facile. Nombre de 1 à 10)
        // Facile. Nombre de 1 à 50
        case 2:
            MAX = 50;
            MIN = 1;
            printf("Vous avez choisi de jouer en mode facile.\nLe nombre tiré au sort sera compris entre 1 et 50.\n\n");
            // Génération d'un nombre aléatoire
            srand(time(NULL));  
            nombreMystere = (rand() % (MAX - MIN + 1)) + MIN;
            // Fin (Génération d'un nombre aléatoire)
            // La boucle qui ne s'arrêtera que lors de la saisie du bon nombre
            do 
            {        
                printf("Quel nombre pensez-vous que j'ai choisi ? ");
                scanf("%ld", &nombreEntre);
                if (nombreMystere > nombreEntre)
                {
                    printf("C'est supérieur.\n\n");
                }
                else if (nombreMystere < nombreEntre)
                {
                    printf("C'est inférieur.\n\n");
                }
                else
                {
                    printf("Bien joué, c'est exact !\n\n");
                }
            } 
            while (nombreEntre != nombreMystere);
            break;
        // Fin (La boucle qui ne s'arrêtera que lors de la saisie du bon nombre)
        // Fin (Facile. Nombre de 1 à 50)
        // Moyen. Nombre de 1 à 100
        case 3:
            MAX = 100;
            MIN = 1;
            printf("Vous avez choisi de jouer en mode moyen.\nLe nombre tiré au sort sera compris entre 1 et 100.\n\n");
            // Génération d'un nombre aléatoire
            srand(time(NULL));  
            nombreMystere = (rand() % (MAX - MIN + 1)) + MIN;
            // Fin (Génération d'un nombre aléatoire)
            // La boucle qui ne s'arrêtera que lors de la saisie du bon nombre
            do 
            {        
                printf("Quel nombre pensez-vous que j'ai choisi ? ");
                scanf("%ld", &nombreEntre);
                if (nombreMystere > nombreEntre)
                {
                    printf("C'est supérieur.\n\n");
                }
                else if (nombreMystere < nombreEntre)
                {
                    printf("C'est inférieur.\n\n");
                }
                else
                {
                    printf("Bien joué, c'est exact !\n\n");
                }
            } 
            while (nombreEntre != nombreMystere);
            break;
        // Fin (La boucle qui ne s'arrêtera que lors de la saisie du bon nombre)
        // Fin (Moyen. Nombre de 1 à 100)
        // Difficile. Nombre 1 à 500
        case 4:
            MAX = 500;
            MIN = 1;
            printf("Vous avez choisi de jouer en mode difficile.\nLe nombre tiré au sort sera compris entre 1 et 500.\n\n");
            // Génération d'un nombre aléatoire
            srand(time(NULL));  
            nombreMystere = (rand() % (MAX - MIN + 1)) + MIN;
            // Fin (Génération d'un nombre aléatoire)
            // La boucle qui ne s'arrêtera que lors de la saisie du bon nombre
            do 
            {        
                printf("Quel nombre pensez-vous que j'ai choisi ? ");
                scanf("%ld", &nombreEntre);
                if (nombreMystere > nombreEntre)
                {
                    printf("C'est supérieur.\n\n");
                }
                else if (nombreMystere < nombreEntre)
                {
                    printf("C'est inférieur.\n\n");
                }
                else
                {
                    printf("Bien joué, c'est exact !\n\n");
                }
            } 
            while (nombreEntre != nombreMystere);
            break;
        // Fin (La boucle qui ne s'arrêtera que lors de la saisie du bon nombre)
        // Fin (Difficile. Nombre de 1 à 500)
        // Très difficile. Nombre de 1 à 1000
        case 5:
            MAX = 1000;
            MIN = 1;
            printf("Vous avez choisi de jouer en mode très difficile.\nLe nombre tiré au sort sera compris entre 1 et 1000.\n\n");
            // Génération d'un nombre aléatoire
            srand(time(NULL));  
            nombreMystere = (rand() % (MAX - MIN + 1)) + MIN;
            // Fin (Génération d'un nombre aléatoire)
            // La boucle qui ne s'arrêtera que lors de la saisie du bon nombre
            do 
            {        
                printf("Quel nombre pensez-vous que j'ai choisi ? ");
                scanf("%ld", &nombreEntre);
                if (nombreMystere > nombreEntre)
                {
                    printf("C'est supérieur.\n\n");
                }
                else if (nombreMystere < nombreEntre)
                {
                    printf("C'est inférieur.\n\n");
                }
                else
                {
                    printf("Bien joué, c'est exact !\n\n");
                }
            } 
            while (nombreEntre != nombreMystere);
            break;
        // Fin (La boucle qui ne s'arrêtera que lors de la saisie du bon nombre)
        // Fin (Très difficile. Nombre de 1 à 1000)
        // Démentiel (Nombre de 1 à 10000)
        case 6:
            MAX = 10000;
            MIN = 1;
            printf("Vous avez choisi de jouer en mode démentiel.\nLe nombre tiré au sort sera compris entre 1 et 10000.\n\n");
            // Génération d'un nombre aléatoire
            srand(time(NULL));  
            nombreMystere = (rand() % (MAX - MIN + 1)) + MIN;
            // Fin (Génération d'un nombre aléatoire)
            // La boucle qui ne s'arrêtera que lors de la saisie du bon nombre
            do 
            {        
                printf("Quel nombre pensez-vous que j'ai choisi ? ");
                scanf("%ld", &nombreEntre);
                if (nombreMystere > nombreEntre)
                {
                    printf("C'est supérieur.\n\n");
                }
                else if (nombreMystere < nombreEntre)
                {
                    printf("C'est inférieur.\n\n");
                }
                else
                {
                    printf("Bien joué, c'est exact !\n\n");
                }
            }
            while (nombreEntre != nombreMystere);
            break;
        // Fin (La boucle qui ne s'arrêtera que lors de la saisie du bon nombre)
        // Fin (Démentiel. Nombre de 1 à 10000)
        // default, utilisé si un nombre incorrect est saisi lors de l'invite
        default:
            printf("Opération inconnue. Veuillez relancer le programme et saisir un nombre valide.\n\n");
            break;
        // Fin (default, utilisé si un nombre incorrect est saisi lors de l'invite)        
    }
    // Fin (Switch)
} while (rejouer == 'o');
printf("Rejouer une partie [o/n] ? ");
scanf("%c", &rejouer);
scanf("%c", &rejouer);
printf("\n");

return 0;

```

}[/code]

---

<div class="post-metadata">

**Author:** ![mattotop](https://www.debian-fr.org/user_avatar/www.debian-fr.org/mattotop/32/3942_2.png) [@mattotop](https://www.debian-fr.org/u/mattotop)\
**Post date:** [Février 20, 2016, 4:07 UTC](https://www.debian-fr.org/t/je-me-mets-au-c/8416/194 "2016-02-20T16:07:44Z")

</div>

trop long et bordelique (pas une fonction et tout en vrac) pour que je lise.  
Tu n’as pas répondu à ma question, sinon.

---

<div class="post-metadata">

**Author:** ![mattotop](https://www.debian-fr.org/user_avatar/www.debian-fr.org/mattotop/32/3942_2.png) [@mattotop](https://www.debian-fr.org/u/mattotop)\
**Post date:** [Février 20, 2016, 4:07 UTC](https://www.debian-fr.org/t/je-me-mets-au-c/8416/195 "2016-02-20T16:07:45Z")

</div>

par ailleurs, sans regarder, juste en clignant de l’oeil, je sais que ça ne fonctionne pas.

---

<div class="post-metadata">

**Author:** ![wavesound](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/w/54ee81/32.png) [@wavesound](https://www.debian-fr.org/u/wavesound)\
**Post date:** [Février 20, 2016, 4:07 UTC](https://www.debian-fr.org/t/je-me-mets-au-c/8416/196 "2016-02-20T16:07:45Z")

</div>

[quote=“mattotop”]trop long et bordelique (pas une fonction et tout en vrac) pour que je lise.  
Tu n’as pas répondu à ma question, sinon.[/quote]  
Je te rappelle que ce n’est que mon troisième “vrai” programme (et mon troisième jour de C) et que je ne suis pas très à l’aise avec les fonctions pour le moment (je m’y pencherai demain).  
Que veux-tu ? Que je t’apporte mon code sur un plateau d’argent ? 😆

J’ai pris soin de bien aligner le tout, de commenter, pour que tout soit clair est lisible… mais je n’ai pas tes connaissances, ni même celles de la plupart des gens ici sur ce forum, je suis un total débutant.

Un peu d’indulgence, que diable ! 😒

> [@](#):
>
> par ailleurs, sans regarder, juste en clignant de l’oeil, je sais que ça ne fonctinone pas

C’est rectifié. J’avais placé mes instructions pour rejouer en dehors de la boucle, et les instructions demandant le niveau de difficulté aussi ! 😆

Tout fonctionne, mais tu persisteras à dire que c’est “sale” et “mal optimisé” je suppose.

[code]/\* GNUPlusM  
GNU General Public License 2.0 \*/

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

int main(void)

{  
// Déclare les variables nécessaires  
long difficulte = 0;  
long nombreMystere = 0, nombreEntre = 0;  
long MAX = 0;  
long MIN = 0;  
char rejouer = ‘o’;  
// Fin (Déclare les variables nécessaires)

```
// Un petit menu
printf("\n");

do
{
    printf("Choisissez votre niveau de difficulté.\n\n1. Très facile. Nombre de 1 à 10.\n2. Facile. Nombre de 1 à 50.\n3. Moyen. Nombre de 1 à 100.\n4. Difficile. Nombre de 1 à 500.\n5. Très difficile. Nombre de 1 à 1000.\n6. Démentiel. Nombre de 1 à 10000.\n\nTapez le nombre correspondant à votre choix : ");
    scanf("%ld", &difficulte);
    printf("\n");
    // Switch
    switch (difficulte)
    {
        // Très facile. Nombre de 1 à 10
        case 1:
            MAX = 10;
            MIN = 1;
            printf("Vous avez choisi de jouer en mode très facile.\nLe nombre tiré au sort sera compris entre 1 et 10.\n\n");
            // Génération d'un nombre aléatoire
            srand(time(NULL));  
            nombreMystere = (rand() % (MAX - MIN + 1)) + MIN;
            // Fin (Génération d'un nombre aléatoire)
            // La boucle qui ne s'arrêtera que lors de la saisie du bon nombre
            do 
            {        
                printf("Quel nombre pensez-vous que j'ai choisi ? ");
                scanf("%ld", &nombreEntre);
                if (nombreMystere > nombreEntre)
                {
                    printf("C'est supérieur.\n\n");
                }
                else if (nombreMystere < nombreEntre)
                {
                    printf("C'est inférieur.\n\n");
                }
                else
                {
                    printf("Bien joué, c'est exact !\n\n");
                }
            } 
            while (nombreEntre != nombreMystere);
            break;
        // Fin (La boucle qui ne s'arrêtera que lors de la saisie du bon nombre)
        // Fin (Très facile. Nombre de 1 à 10)
        // Facile. Nombre de 1 à 50
        case 2:
            MAX = 50;
            MIN = 1;
            printf("Vous avez choisi de jouer en mode facile.\nLe nombre tiré au sort sera compris entre 1 et 50.\n\n");
            // Génération d'un nombre aléatoire
            srand(time(NULL));  
            nombreMystere = (rand() % (MAX - MIN + 1)) + MIN;
            // Fin (Génération d'un nombre aléatoire)
            // La boucle qui ne s'arrêtera que lors de la saisie du bon nombre
            do 
            {        
                printf("Quel nombre pensez-vous que j'ai choisi ? ");
                scanf("%ld", &nombreEntre);
                if (nombreMystere > nombreEntre)
                {
                    printf("C'est supérieur.\n\n");
                }
                else if (nombreMystere < nombreEntre)
                {
                    printf("C'est inférieur.\n\n");
                }
                else
                {
                    printf("Bien joué, c'est exact !\n\n");
                }
            } 
            while (nombreEntre != nombreMystere);
            break;
        // Fin (La boucle qui ne s'arrêtera que lors de la saisie du bon nombre)
        // Fin (Facile. Nombre de 1 à 50)
        // Moyen. Nombre de 1 à 100
        case 3:
            MAX = 100;
            MIN = 1;
            printf("Vous avez choisi de jouer en mode moyen.\nLe nombre tiré au sort sera compris entre 1 et 100.\n\n");
            // Génération d'un nombre aléatoire
            srand(time(NULL));  
            nombreMystere = (rand() % (MAX - MIN + 1)) + MIN;
            // Fin (Génération d'un nombre aléatoire)
            // La boucle qui ne s'arrêtera que lors de la saisie du bon nombre
            do 
            {        
                printf("Quel nombre pensez-vous que j'ai choisi ? ");
                scanf("%ld", &nombreEntre);
                if (nombreMystere > nombreEntre)
                {
                    printf("C'est supérieur.\n\n");
                }
                else if (nombreMystere < nombreEntre)
                {
                    printf("C'est inférieur.\n\n");
                }
                else
                {
                    printf("Bien joué, c'est exact !\n\n");
                }
            } 
            while (nombreEntre != nombreMystere);
            break;
        // Fin (La boucle qui ne s'arrêtera que lors de la saisie du bon nombre)
        // Fin (Moyen. Nombre de 1 à 100)
        // Difficile. Nombre 1 à 500
        case 4:
            MAX = 500;
            MIN = 1;
            printf("Vous avez choisi de jouer en mode difficile.\nLe nombre tiré au sort sera compris entre 1 et 500.\n\n");
            // Génération d'un nombre aléatoire
            srand(time(NULL));  
            nombreMystere = (rand() % (MAX - MIN + 1)) + MIN;
            // Fin (Génération d'un nombre aléatoire)
            // La boucle qui ne s'arrêtera que lors de la saisie du bon nombre
            do 
            {        
                printf("Quel nombre pensez-vous que j'ai choisi ? ");
                scanf("%ld", &nombreEntre);
                if (nombreMystere > nombreEntre)
                {
                    printf("C'est supérieur.\n\n");
                }
                else if (nombreMystere < nombreEntre)
                {
                    printf("C'est inférieur.\n\n");
                }
                else
                {
                    printf("Bien joué, c'est exact !\n\n");
                }
            } 
            while (nombreEntre != nombreMystere);
            break;
        // Fin (La boucle qui ne s'arrêtera que lors de la saisie du bon nombre)
        // Fin (Difficile. Nombre de 1 à 500)
        // Très difficile. Nombre de 1 à 1000
        case 5:
            MAX = 1000;
            MIN = 1;
            printf("Vous avez choisi de jouer en mode très difficile.\nLe nombre tiré au sort sera compris entre 1 et 1000.\n\n");
            // Génération d'un nombre aléatoire
            srand(time(NULL));  
            nombreMystere = (rand() % (MAX - MIN + 1)) + MIN;
            // Fin (Génération d'un nombre aléatoire)
            // La boucle qui ne s'arrêtera que lors de la saisie du bon nombre
            do 
            {        
                printf("Quel nombre pensez-vous que j'ai choisi ? ");
                scanf("%ld", &nombreEntre);
                if (nombreMystere > nombreEntre)
                {
                    printf("C'est supérieur.\n\n");
                }
                else if (nombreMystere < nombreEntre)
                {
                    printf("C'est inférieur.\n\n");
                }
                else
                {
                    printf("Bien joué, c'est exact !\n\n");
                }
            } 
            while (nombreEntre != nombreMystere);
            break;
        // Fin (La boucle qui ne s'arrêtera que lors de la saisie du bon nombre)
        // Fin (Très difficile. Nombre de 1 à 1000)
        // Démentiel (Nombre de 1 à 10000)
        case 6:
            MAX = 10000;
            MIN = 1;
            printf("Vous avez choisi de jouer en mode démentiel.\nLe nombre tiré au sort sera compris entre 1 et 10000.\n\n");
            // Génération d'un nombre aléatoire
            srand(time(NULL));  
            nombreMystere = (rand() % (MAX - MIN + 1)) + MIN;
            // Fin (Génération d'un nombre aléatoire)
            // La boucle qui ne s'arrêtera que lors de la saisie du bon nombre
            do 
            {        
                printf("Quel nombre pensez-vous que j'ai choisi ? ");
                scanf("%ld", &nombreEntre);
                if (nombreMystere > nombreEntre)
                {
                    printf("C'est supérieur.\n\n");
                }
                else if (nombreMystere < nombreEntre)
                {
                    printf("C'est inférieur.\n\n");
                }
                else
                {
                    printf("Bien joué, c'est exact !\n\n");
                }
            }
            while (nombreEntre != nombreMystere);
            break;
        // Fin (La boucle qui ne s'arrêtera que lors de la saisie du bon nombre)
        // Fin (Démentiel. Nombre de 1 à 10000)
        // default, utilisé si un nombre incorrect est saisi lors de l'invite
        default:
            printf("Opération inconnue. Veuillez relancer le programme et saisir un nombre valide.\n\n");
            break;
        // Fin (default, utilisé si un nombre incorrect est saisi lors de l'invite)        
    }
    // Fin (Switch)
    printf("Rejouer une partie [o/n] ? ");
    scanf("%c", &rejouer);
    scanf("%c", &rejouer);
    printf("\n"); 
} while (rejouer == 'o');

return 0;

```

}[/code]

---

<div class="post-metadata">

**Author:** ![mattotop](https://www.debian-fr.org/user_avatar/www.debian-fr.org/mattotop/32/3942_2.png) [@mattotop](https://www.debian-fr.org/u/mattotop)\
**Post date:** [Février 20, 2016, 4:07 UTC](https://www.debian-fr.org/t/je-me-mets-au-c/8416/197 "2016-02-20T16:07:45Z")

</div>

[quote=“wavesound”][quote=“mattotop”]trop long et bordelique (pas une fonction et tout en vrac) pour que je lise.  
Tu n’as pas répondu à ma question, sinon.[/quote]  
Je te rappelle que ce n’est que mon troisième “vrai” programme (et mon troisième jour de C) et que je ne suis pas très à l’aise avec les fonctions pour le moment (je m’y pencherai demain).[/quote]C’est justement pour ça que je te dis, avant de passer à la suite, fais ça d’abord.[quote=“wavesound”]  
(…)  
Un peu d’indulgence, que diable ! 😒[/quote]Pourquoi ? Tu crois que ça t’aiderait à mieux avancer si je te laissait te perdre dans de mauvaises habitudes ?

[quote=“wavesound”]

[quote=“mattotop”]par ailleurs, sans regarder, juste en clignant de l’oeil, je sais que ça ne fonctinone pas/quote  
Tout fonctionne, mais tu persisteras à dire que c’est “sale” et “mal optimisé” je suppose.  
(…)[/quote]Non, tu es bien loin de pouvoir te préoccuper de faire du code propre et optimisé. Je dit que c’est parfaitement illisible, et contreproductif si tu veux apprendre parceque tu n’as fait que répeter ce que tu savais déjà en y ajoutant des prises de mauvaises habitudes, alors que je me proposais de te guider sur un (soyons modeste tout de même) bon chemin de nouveautés constructives.  
Si tout ce que tu veux c’est faire un long code source, tu peux aussi faire un fichier qui imprime la bible, avec un printf à chaque ligne 😆  
Sois patient et penses que ceux qui essayent de t’apprendre des choses n’ont pas l’objectif de te faire chier pour rien, et ça améliorera peut être tes notes dans les matières ou tu te gamelles.  
Ce n’est pas parceque tu ne vois pas ou on t’emmène qu’il n’y a pas un objectif au delà de l’horizon.

Maintenant, si je t’emmerde, j’arrète, sinon, réponds à mes questions. 😉

---

<div class="post-metadata">

**Author:** ![Pingoo\_Pat](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/p/d2c977/32.png) [@Pingoo\_Pat](https://www.debian-fr.org/u/Pingoo_Pat)\
**Post date:** [Février 20, 2016, 4:07 UTC](https://www.debian-fr.org/t/je-me-mets-au-c/8416/198 "2016-02-20T16:07:46Z")

</div>

> [@](#):
>
> …

Juste comme ça, tu ne serais pas d’un signe zodiacal bovin ? ;p

Faut écouter tonton Mat, il te pose de bonnes questions. ![:smt024](https://www.debian-fr.org/uploads/default/original/1X/d697e874e336a377d9ee24639447389ca55c9a17.gif)😮

---

<div class="post-metadata">

**Author:** ![Pingoo\_Pat](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/p/d2c977/32.png) [@Pingoo\_Pat](https://www.debian-fr.org/u/Pingoo_Pat)\
**Post date:** [Février 20, 2016, 4:07 UTC](https://www.debian-fr.org/t/je-me-mets-au-c/8416/199 "2016-02-20T16:07:46Z")

</div>

Sur ce je me couche, il est 1h30 du mat’ ici \o

Et oui, je flood. 😈

Bonwi !

---

<div class="post-metadata">

**Author:** ![mattotop](https://www.debian-fr.org/user_avatar/www.debian-fr.org/mattotop/32/3942_2.png) [@mattotop](https://www.debian-fr.org/u/mattotop)\
**Post date:** [Février 20, 2016, 4:07 UTC](https://www.debian-fr.org/t/je-me-mets-au-c/8416/200 "2016-02-20T16:07:46Z")

</div>

quote="Pingoo Pat"  
Juste comme ça, tu ne serais pas d’un signe zodiacal bovin ? ;p  
(…)[/quote]Aprés mon ton didactique, si tu es encore énervé, pense bien que tout ce que veut savoir pépé, c’est si tu es taureau. 😆

[Page précédente](https://www.debian-fr.org/t/je-me-mets-au-c/8416.md?page=9)

[Page suivante](https://www.debian-fr.org/t/je-me-mets-au-c/8416.md?page=11)
