[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 ! 
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]