Langage C, projet pas complet avec 51 erreurs
Fermé
SSV
-
8 juil. 2011 à 19:50
JooS Messages postés 2468 Date d'inscription mardi 22 janvier 2008 Statut Membre Dernière intervention 8 juin 2016 - 8 juil. 2011 à 21:02
JooS Messages postés 2468 Date d'inscription mardi 22 janvier 2008 Statut Membre Dernière intervention 8 juin 2016 - 8 juil. 2011 à 21:02
A voir également:
- Langage C, projet pas complet avec 51 erreurs
- Langage ascii - Guide
- Télécharger film complet sur mobile - Télécharger - TV & Vidéo
- Telechargement film d'action complet en francais - Télécharger - TV & Vidéo
- Langage binaire - Guide
- Musique projet x - Forum Audio
3 réponses
KX
Messages postés
16753
Date d'inscription
samedi 31 mai 2008
Statut
Modérateur
Dernière intervention
25 novembre 2024
3 019
Modifié par KX le 8/07/2011 à 20:37
Modifié par KX le 8/07/2011 à 20:37
Enlève le début de ton code : #include "stdafx.h" et int _tmain(...)
Puis lis les erreurs qui te sont affichées, elles te sont précieuses pour corriger ton code
'variable' : redéfinition ; initialisation multiple
Tu dois toujours n'avoir qu'une seule variable d'un même nom dans le même bloc de code.
Ici tu as plusieurs fois les variables resultat, MIN, MAX et chiffre_perso
Le plus simple pour corriger toutes les erreurs en modifiant un minimum ton code c'est de rajouter des accolades dans le switch
Il te restera sûrement plein de choses à modifier, mais tu ne devrais plus avoir d'erreurs.
La confiance n'exclut pas le contrôle
Puis lis les erreurs qui te sont affichées, elles te sont précieuses pour corriger ton code
'variable' : redéfinition ; initialisation multiple
Tu dois toujours n'avoir qu'une seule variable d'un même nom dans le même bloc de code.
Ici tu as plusieurs fois les variables resultat, MIN, MAX et chiffre_perso
Le plus simple pour corriger toutes les erreurs en modifiant un minimum ton code c'est de rajouter des accolades dans le switch
case n : // à faire pour chaque case { // accolade à rajouter // le code sans le modifier break; // mets soit break, soit return 0, mais pas les deux } // accolade à rajouter
Il te restera sûrement plein de choses à modifier, mais tu ne devrais plus avoir d'erreurs.
La confiance n'exclut pas le contrôle
JooS
Messages postés
2468
Date d'inscription
mardi 22 janvier 2008
Statut
Membre
Dernière intervention
8 juin 2016
228
8 juil. 2011 à 20:47
8 juil. 2011 à 20:47
Salut ...
Erreur 1 : T'as oublier le & dans scanf ("%d", choice1);
Erreur 2 : Dans le switch, mieux vaut que tu déclare des variables au debut du programme, c'est plus propre, et c'est pas la peine de déclarer nombre3, nombre4 ... etc, tu peut réutiliser nombre1 et 2 dans tout les cas, même chose pour les constantes ...
Erreur 3 : Le quatrième jeux ne fonctionne pas de cette manière, imagine que le joueur donne un nombre inférieur, alors il entre dans la première boucle, et que après il donne un nombre supérieur, il sort de la première boucle, et il entre dans la deuxième, puis si il redonne un nombre inférieur, ben il pourra pas remonter vers la première boucle, ce qui mettra fin au programme, en plus, tu n'affiche aucun message dans le cas ou le joueur arrive a deviner le nombre mystère !!!
Donc le tout doit se passer dans une seule boucle, et dans celle si tu mets des conditions (si inférieur, si supérieur).
Erreur 1 : T'as oublier le & dans scanf ("%d", choice1);
Erreur 2 : Dans le switch, mieux vaut que tu déclare des variables au debut du programme, c'est plus propre, et c'est pas la peine de déclarer nombre3, nombre4 ... etc, tu peut réutiliser nombre1 et 2 dans tout les cas, même chose pour les constantes ...
Erreur 3 : Le quatrième jeux ne fonctionne pas de cette manière, imagine que le joueur donne un nombre inférieur, alors il entre dans la première boucle, et que après il donne un nombre supérieur, il sort de la première boucle, et il entre dans la deuxième, puis si il redonne un nombre inférieur, ben il pourra pas remonter vers la première boucle, ce qui mettra fin au programme, en plus, tu n'affiche aucun message dans le cas ou le joueur arrive a deviner le nombre mystère !!!
Donc le tout doit se passer dans une seule boucle, et dans celle si tu mets des conditions (si inférieur, si supérieur).
JooS
Messages postés
2468
Date d'inscription
mardi 22 janvier 2008
Statut
Membre
Dernière intervention
8 juin 2016
228
8 juil. 2011 à 21:02
8 juil. 2011 à 21:02
A relire !!!
j'aime pas tros le truc du case !!!
j'aime pas tros le truc du case !!!
#include<stdio.h> #include<stdlib.h> #include<time.h> int main () { char prenom[100]; char nom[30]; char sexe[7]; char choix1[100]; int choix, resultat = 0, nombre1 = 0, nombre2 = 0, chiffre_perso = 0, nombreMystere; const int MAX = 100, MAX1 = 1000, MIN = 1; printf ("Prenom:\n"); scanf ("%s", prenom); printf ("\n\n"); printf ("Nom:\n"); scanf ("%s", nom); printf ("\n\n\n"); printf ("Sexe:\n"); scanf ("%s", sexe); printf ("Tu es %s %s et tu es un(e) %s.\n\n\n\n\n", prenom, nom, sexe); printf ("Joueur %s %s, que veux tu faire aujourd'hui ?\n\n", prenom, nom); printf ("1.Calculer avec calculadd.\n"); printf ("2.Calculer avec calculmult.\n"); printf ("3.Calculer avec calculsn.\n"); printf ("4.Jouer a Plus ou moins mode facile.\n"); printf ("5.Jouer a Plus ou Moins mode difficile.\n\n"); scanf ("%d", &choix); switch (choix) { case 1: printf ("Tapez le premier chiffre."); scanf ("%d", &nombre1); printf ("\n\n"); printf ("Tapez le deuxieme chiffre."); scanf ("%d", &nombre2); resultat = nombre1 + nombre2; printf ("%d + %d = %d\n", nombre1, nombre2, resultat); break; case 2: printf ("Tapez le premier chiffre."); scanf ("%d", &nombre1); printf ("\n\n"); printf ("Tapez le deuxieme chiffre."); scanf ("%d", &nombre2); resultat = nombre1 * nombre2; printf ("%d * %d = %d\n", nombre1, nombre2, resultat); break; case 3: printf ("Tapez le premier chiffre."); scanf ("%d", &nombre1); printf ("\n\n"); printf ("Tapez le deuxieme chiffre."); scanf ("%d", &nombre2); resultat = nombre1 - nombre2; printf ("%d - %d = %d\n", nombre1, nombre2, resultat); break; case 4: srand(time(NULL)); nombreMystere = (rand() %(MAX - MIN + 1)) + MIN; printf ("Donner un nombre entre 1 et 100 !\n"); scanf ("%d", &chiffre_perso); while (chiffre_perso != nombreMystere) { if(chiffre_perso < nombreMystere && chiffre_perso > MIN) { printf ("Plus !\n\n"); scanf ("%d", &chiffre_perso); } else if(chiffre_perso > nombreMystere && chiffre_perso < MAX) { printf ("Moins !\n\n"); scanf ("%d", &chiffre_perso); } else { printf ("Rester dans les bornes [1, 100] !\n\n"); scanf ("%d", &chiffre_perso); } } printf("BINGOOOO !!!"); break; case 5: srand(time(NULL)); nombreMystere = (rand() %(MAX1 - MIN + 1)) + MIN; printf ("Donner un nombre entre 1 et 1000 !\n"); scanf ("%d", &chiffre_perso); while (chiffre_perso != nombreMystere) { if(chiffre_perso < nombreMystere && chiffre_perso > MIN) { printf ("Plus !\n\n"); scanf ("%d", &chiffre_perso); } else if(chiffre_perso > nombreMystere && chiffre_perso < MAX1) { printf ("Moins !\n\n"); scanf ("%d", &chiffre_perso); } else { printf ("Rester dans les bornes [1, 1000] !\n\n"); scanf ("%d", &chiffre_perso); } } printf("BINGOOOO !!!"); break; default: printf ("Si vous tapez n'importe quoi, vous ne pourrez pas jouer !\n\n\n\n\n"); break; } return 0; }