Problemme programmation
Résolu/Fermé
arthurbest78
Messages postés
66
Date d'inscription
jeudi 8 avril 2010
Statut
Membre
Dernière intervention
26 juin 2014
-
16 avril 2010 à 18:22
scriptiz Messages postés 1424 Date d'inscription dimanche 21 décembre 2008 Statut Membre Dernière intervention 14 septembre 2023 - 18 avril 2010 à 04:16
scriptiz Messages postés 1424 Date d'inscription dimanche 21 décembre 2008 Statut Membre Dernière intervention 14 septembre 2023 - 18 avril 2010 à 04:16
A voir également:
- Problemme programmation
- Application de programmation - Guide
- Programmation logo tortue télécharger - Télécharger - Études & Formations
- Problème de programmation digicode extel klavy 3 ✓ - Forum Loisirs / Divertissements
- Programmation carte à puce vierge ✓ - Forum Matériel & Système
- Programmation binaire - Guide
7 réponses
livesphere
Messages postés
20
Date d'inscription
dimanche 20 décembre 2009
Statut
Membre
Dernière intervention
16 avril 2010
2
16 avril 2010 à 18:25
16 avril 2010 à 18:25
Salut,
Déjà met ceci : int main (int argc, char *argv[])
Ensuite, tu as quoi comme erreur ou que se passe t il ?
Enfin pour un site tu as Developpez.com
Déjà met ceci : int main (int argc, char *argv[])
Ensuite, tu as quoi comme erreur ou que se passe t il ?
Enfin pour un site tu as Developpez.com
scriptiz
Messages postés
1424
Date d'inscription
dimanche 21 décembre 2008
Statut
Membre
Dernière intervention
14 septembre 2023
425
16 avril 2010 à 18:42
16 avril 2010 à 18:42
Bonjour,
Tu as oublié des ";" à la fin de plusieurs lignes, voici ton code corrigé :
Après je ne sais pas si tu t'en rend compte mais tu pourrais vachement simplifié ton code en ne séparant dans les if (que tu pourrais remplacé par un switch aussi) que les parties distinctes à chaque niveau.
Un exemple d'optimisation :
C'est quand même plus simple non ^^
Tu as oublié des ";" à la fin de plusieurs lignes, voici ton code corrigé :
#include <stdio.h> #include <stdlib.h> #include <time.h> int main () { int choixNiveau; printf("Quel niveau voulez vous choisir ? \n\n"); printf("Niveau 1, entre 1 et 10 \n"); printf("Niveau 2, entre 1 et 100 \n"); printf("Niveau 3, entre 1 et 1000 \n"); printf("Niveau 4, entre 1 et 10000 "); scanf("%d", &choixNiveau); printf("\n\n"); if (choixNiveau == 1) { int nombreMystere = 0, nombreEntre = 0; const int MAX = 10, MIN = 1; // tu avais oublié le ; à la fin de la ligne srand(time(NULL)); nombreMystere = (rand() % (MAX - MIN + 1)) + MIN; do { printf("Quel est le nombre ? "); scanf("%d", &nombreEntre); if (nombreMystere > nombreEntre) printf("C'est plus !\n\n"); else if (nombreMystere < nombreEntre) printf("C'est moins !\n\n"); else printf ("Bravo, vous avez trouve le nombre mystere !!!\n\n"); } while (nombreEntre != nombreMystere); } else if (choixNiveau == 2) { int nombreMystere = 0, nombreEntre = 0; const int MAX = 100, MIN = 1; // pareil il manquait le ; srand(time(NULL)); nombreMystere = (rand() % (MAX - MIN + 1)) + MIN; do { printf("Quel est le nombre ? "); scanf("%d", &nombreEntre); if (nombreMystere > nombreEntre) printf("C'est plus !\n\n"); else if (nombreMystere < nombreEntre) printf("C'est moins !\n\n"); else printf ("Bravo, vous avez trouve le nombre mystere !!!\n\n"); } while (nombreEntre != nombreMystere); } else if (choixNiveau == 3) { int nombreMystere = 0, nombreEntre = 0; const int MAX = 1000, MIN = 1; // pareil il manquait le ; srand(time(NULL)); nombreMystere = (rand() % (MAX - MIN + 1)) + MIN; do { printf("Quel est le nombre ? "); scanf("%d", &nombreEntre); if (nombreMystere > nombreEntre) printf("C'est plus !\n\n"); else if (nombreMystere < nombreEntre) printf("C'est moins !\n\n"); else printf ("Bravo, vous avez trouve le nombre mystere !!!\n\n"); } while (nombreEntre != nombreMystere); } else if(choixNiveau == 4) { int nombreMystere = 0, nombreEntre = 0; const int MAX = 10000, MIN = 1; // parei il manquait le ; srand(time(NULL)); nombreMystere = (rand() % (MAX - MIN + 1)) + MIN; do { printf("Quel est le nombre ? "); scanf("%d", &nombreEntre); if (nombreMystere > nombreEntre) printf("C'est plus !\n\n"); else if (nombreMystere < nombreEntre) printf("C'est moins !\n\n"); else printf ("Bravo, vous avez trouve le nombre mystere !!!\n\n"); } while (nombreEntre != nombreMystere); } else { printf("Votre Nombre est incorrect"); // il manquait aussi un ; } return 0; }
Après je ne sais pas si tu t'en rend compte mais tu pourrais vachement simplifié ton code en ne séparant dans les if (que tu pourrais remplacé par un switch aussi) que les parties distinctes à chaque niveau.
Un exemple d'optimisation :
#include <stdio.h> #include <stdlib.h> #include <time.h> int main () { int choixNiveau; printf("Quel niveau voulez vous choisir ? \n\n"); printf("Niveau 1, entre 1 et 10 \n"); printf("Niveau 2, entre 1 et 100 \n"); printf("Niveau 3, entre 1 et 1000 \n"); printf("Niveau 4, entre 1 et 10000 "); scanf("%d", &choixNiveau); printf("\n\n"); int max = 10, min = 1; int nombreMystere = 0, nombreEntre = 0; switch(choixNiveau) { case 1: max = 10; break; case 2: max = 100; break; case 3: max = 1000; break; case 4: max = 10000; break; default: printf("Votre Nombre est incorrect"); return 1; break; } srand(time(NULL)); nombreMystere = (rand() % (max - min + 1)) + min; do { printf("Quel est le nombre ? "); scanf("%d", &nombreEntre); if (nombreMystere > nombreEntre) printf("C'est plus !\n\n"); else if (nombreMystere < nombreEntre) printf("C'est moins !\n\n"); else printf ("Bravo, vous avez trouve le nombre mystere !!!\n\n"); } while (nombreEntre != nombreMystere); return 0; }
C'est quand même plus simple non ^^
arthurbest78
Messages postés
66
Date d'inscription
jeudi 8 avril 2010
Statut
Membre
Dernière intervention
26 juin 2014
26
Modifié par arthurbest78 le 16/04/2010 à 19:44
Modifié par arthurbest78 le 16/04/2010 à 19:44
Merci beaucoup pour les réponse, tu a raison scriptiz et aussi pourquoi un moment tu a mit "return 1;" ?
scriptiz
Messages postés
1424
Date d'inscription
dimanche 21 décembre 2008
Statut
Membre
Dernière intervention
14 septembre 2023
425
16 avril 2010 à 19:32
16 avril 2010 à 19:32
Voilà un bon endroit où continuer dans un premier temps après le site du zéro :
Cours de C :
https://c.developpez.com/cours/
Cours de C++ :
https://cpp.developpez.com/cours/
Le C++ s'inscrit dans la prolongation du C, introduisant de nouveaux outils/concepts tels que l'orienté objet (et d'autres).
Donc c'est une bonne chose que tu t'y mette après le C ;)
Cours de C :
https://c.developpez.com/cours/
Cours de C++ :
https://cpp.developpez.com/cours/
Le C++ s'inscrit dans la prolongation du C, introduisant de nouveaux outils/concepts tels que l'orienté objet (et d'autres).
Donc c'est une bonne chose que tu t'y mette après le C ;)
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
scriptiz
Messages postés
1424
Date d'inscription
dimanche 21 décembre 2008
Statut
Membre
Dernière intervention
14 septembre 2023
425
17 avril 2010 à 00:13
17 avril 2010 à 00:13
Voici comment afficher le nombre de coups pour la partie :
Je me suis servie de la version optimisée que je t'avais fournie afin d'alléger le code.
Voilà si tu as d'autres problèmes/questions n'hésite pas à m'envoyer un message privé sur ce forum (en cliquant sur mon pseudo) et je me ferais un plaisir de te répondre selon mes connaissances :)
Sinon bonne continuation.
Je me suis servie de la version optimisée que je t'avais fournie afin d'alléger le code.
#include <stdio.h> #include <stdlib.h> #include <time.h> int main () { int choixNiveau; printf("Quel niveau voulez vous choisir ? \n\n"); printf("Niveau 1, entre 1 et 10 \n"); printf("Niveau 2, entre 1 et 100 \n"); printf("Niveau 3, entre 1 et 1000 \n"); printf("Niveau 4, entre 1 et 10000 "); scanf("%d", &choixNiveau); printf("\n\n"); int max = 10, min = 1; int nombreMystere = 0, nombreEntre = 0; switch(choixNiveau) { case 1: max = 10; break; case 2: max = 100; break; case 3: max = 1000; break; case 4: max = 10000; break; default: printf("Votre Nombre est incorrect"); return 1; break; } // on se sert d'un variable pour stocker le nombre de coups int nombreDeCoups = 0; srand(time(NULL)); nombreMystere = (rand() % (max - min + 1)) + min; do { printf("Quel est le nombre ? "); scanf("%d", &nombreEntre); nombreDeCoups++; // on augmente le nombre de coups de 1 if (nombreMystere > nombreEntre) printf("C'est plus !\n\n"); else if (nombreMystere < nombreEntre) printf("C'est moins !\n\n"); else printf ("Bravo, vous avez trouve le nombre mystere en %d coups!!!\n\n", nombreDeCoups); } while (nombreEntre != nombreMystere); return 0; }
Voilà si tu as d'autres problèmes/questions n'hésite pas à m'envoyer un message privé sur ce forum (en cliquant sur mon pseudo) et je me ferais un plaisir de te répondre selon mes connaissances :)
Sinon bonne continuation.
arthurbest78
Messages postés
66
Date d'inscription
jeudi 8 avril 2010
Statut
Membre
Dernière intervention
26 juin 2014
26
Modifié par arthurbest78 le 17/04/2010 à 15:54
Modifié par arthurbest78 le 17/04/2010 à 15:54
Merci beaucoup, des réponse et du temps que tu ma accordé et aussi je trouve sa cool que tu veut bien m'aider si j'ai un problème, bref a bientôt
scriptiz
Messages postés
1424
Date d'inscription
dimanche 21 décembre 2008
Statut
Membre
Dernière intervention
14 septembre 2023
425
18 avril 2010 à 04:16
18 avril 2010 à 04:16
Avec plaisir, bonne continuation.
17 avril 2010 à 19:48