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
Bonjour,
Je vous presente mon probleme: j'apprend actuellement a programmer en C grace au site du zero (www.siteduzero.com) sur visual c++ express v 2008 (OS:WINDOWS XP) et mon code source comporte 51 ERREURS... Quelqu'un pourrait me le corriger si possible ? Le voici:
// Projet.cpp : définit le point d'entrée pour l'application console.
//CECI EST UN PROJET NON-COMPLET ET QUI COMPORTE 51 ERREURS !!!

#include "stdafx.h"


int _tmain(int argc, _TCHAR* argv[])
{
return 0;
}

#include<stdio.h>
#include<stdlib.h>
#include<time.h>
int main ()
{
char prenom [100];
char nom [30];
char s [7];
char choice [100];
int choice1;

printf ("Prenom:\n");
scanf ("%s", prenom);
printf ("\n\n");
printf ("Nom:\n");
scanf ("%s", nom);
printf ("\n\n\n");
printf ("Sexe:\n");
scanf ("%s", s);
printf ("Tu es %s %s et tu es un(e) %s.\n\n\n\n\n", prenom, nom, s);
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", choice1);

switch (choice1)
{
case 1:
int resultat = 0, nombre1 = 0, nombre2 = 0;
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);
return 0;
break;
case 2:
int resultat = 0, nombre3 = 0, nombre4 = 0;
printf ("Tapez le premier chiffre.");
scanf ("%d", &nombre3);
printf ("\n\n");
printf ("Tapez le deuxieme chiffre.");
scanf ("%d", &nombre4);
resultat = nombre3 * nombre4;
printf ("%d * %d = %d\n", nombre3, nombre4, resultat);
return 0;
break;
case 3:
int resultat = 0, nombre5 = 0, nombre6 = 0;
printf ("Tapez le premier chiffre.");
scanf ("%d", &nombre5);
printf ("\n\n");
printf ("Tapez le deuxieme chiffre.");
scanf ("%d", &nombre6);
resultat = nombre5 - nombre6;
printf ("%d - %d = %d\n", nombre5, nombre6, resultat);
return 0;
break;
case 4:
int chiffre_perso = 0;
int nombreMystere;
const int MAX = 100, MIN = 1;
srand(time(NULL));
nombreMystere = (rand() %(MAX - MIN + 1)) + MIN;
while (chiffre_perso <= nombreMystere)
{
printf ("Plus !\n\n");
scanf ("%d", &chiffre_perso);
}
while (chiffre_perso >= nombreMystere)
{
printf ("Moins !\n\n");
scanf ("%d", &chiffre_perso);
}
break;
case 5:
int chiffre_perso = 0;
int nombreMystere;
const int MAX = 1000, MIN = 1;
srand(time(NULL));
nombreMystere = (rand() %(MAX - MIN + 1)) + MIN;
while (chiffre_perso <= nombreMystere)
{
printf ("Plus !\n\n");
scanf ("%d", &chiffre_perso);
}
while (chiffre_perso >= nombreMystere)
{
printf ("Moins !\n\n");
scanf ("%d", &chiffre_perso);
}
break;
default:
printf ("Si vous tapez n'importe quoi, vous ne pourrez pas jouer !\n\n\n\n\n");
break;
}

}
Merci d'avance !


A voir également:

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
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

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
0
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
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).
0
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
A relire !!!
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;
}
0