IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

 C Discussion :

Ou est le probleme ici svp


Sujet :

C

  1. #1
    Nouveau candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2011
    Messages
    1
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Conseil

    Informations forums :
    Inscription : Avril 2011
    Messages : 1
    Par défaut Ou est le probleme ici svp
    je debute a la programmation C et je vousrai savoir les fautes commises ici :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    #include<stdio.h>
    #include<stdlib.h>
    #include<time.h>
    #include<string.h>
    #include<ctype.h>
     
    int main(int argc, char *argv[])
    {
        int  viesAd = 2000 , degats = 0 ,degatsAd = 0 , att = 0 , points = 1000 ,  rejouer=1 , vies = points - att, defense = 0, i = 0 , choixA = 0;
        char nom[100] , ad[100]  , dire[1000] , choix[200], ATTAQUE[] = "ATTAQUE", ouiOuNon[10], DEFENSE[] = "DEFENSE", OUI[] =  "OUI";
        srand(time(NULL));
        degats = att + (rand() % (20 - 10 + 1)) + 10;
        degatsAd = (rand() % (20 - 10 + 1)) + 10;
        while(rejouer = 1)
        {
            printf("Bienvenue a l'arene\n\tVotre nom : ");
            scanf("%s" , nom);
            printf("\n\tCelui de l'adversaire : ");
            scanf("%s" , ad);
            do
            {
                printf("Vous avez %d points a distribuer !\n\tDans l'attaque : ");
                scanf("%d" , att);
                if(att > points)
                    printf("\nVous vous moquez de moi ?");
                else if(att <= points )
                    printf("\n\tDans la vie : %d " , vies);
            }while (att > points);
            for(vies != 0 || viesAd != 0;)
            {
                printf("%s : %d vies\n%s : %d vies\n" , nom , vies , ad , viesAd );
                printf("Votre commmentaire : ");
                scanf("%s" , dire);
                printf("Attaque ou defense ?\n");
                scanf("%s" , choix);
                choix = toupper(choix);
                do
                {
                    if(strcmp(choix, ATTAQUE) == 0)
                        {
                        viesAd = viesAd - degats;
                        printf("%s a dit '%s' et a infliqe a l'ennemi %d degats", nom , dire , degats);
                        }
                    if(strcmp(choix, DEFENSE) == 0)
                        {
                        defense = 1;
                        printf("Vous vous etes defendus");
                        }
                    else
                        printf("Cette action n'existe pas !\n");
                        i = 1;
                }while(i=1);
                    if(defense = 1)
                        printf("%s ne vous a rien fait subir", ad);
                    else
                    {
                        vies = vies - degatsAd;
                        printf("%s vous a inflige %d degats", ad , degatsAd);
                    }
                degats = att + (rand() % (20 - 10 + 1)) + 10;
                degatsAd = (rand() % (100 - 10 + 1)) + 10;
            }
       if(vies = 0)
            printf("PERDU : vous venger ?");
       if(viesAd = 0)
            printf("GAGNE : rejouer ?");
        scanf("%s", ouiOuNon);
        ouiOuNon = toupper(ouiOuNon);
        if(strcmp(ouiOuNon, OUI) == 0)
            rejouer = 1;
        else
            rejouer = 0;
       }
    }

  2. #2
    Expert confirmé

    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    10 610
    Détails du profil
    Informations personnelles :
    Âge : 67
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 10 610
    Billets dans le blog
    2
    Par défaut
    D'abord entoure ton code des balises "code" (le signe #)

    Ensuite, la première chose qui saute aux yeux (si on peut dire vu la caractère non-lisible sans les balises code) c'est que scanf demande une adresse pour aller stocker le paramètre, et que tu n'en pases pas..

    Code C : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    int att = 0 ;
     
    scanf("%d" , att);

    devrait être :

    Code C : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    int att = 0 ;
    
    scanf("%d" , &att);


    Enfin, quand on poste sur le forum, il serait bon de préciser quel est le problème.. On n'est pas des devins, et on ne va passer notre temps à éplucher tous les codes..

  3. #3
    Expert confirmé
    Avatar de diogene
    Homme Profil pro
    Enseignant Chercheur
    Inscrit en
    Juin 2005
    Messages
    5 761
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Enseignant Chercheur
    Secteur : Enseignement

    Informations forums :
    Inscription : Juin 2005
    Messages : 5 761
    Par défaut
    Attention, le signe = désigne une assignation, pas une comparaison qui utilise elle l'opérateur ==
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    14 while(rejouer == 1)
    52             }while(i==1);
                    if(defense == 1)
    63    if(vies ==0)
            printf("PERDU : vous venger ?");
       if(viesAd == 0)

  4. #4
    Modérateur
    Avatar de gangsoleil
    Homme Profil pro
    Manager / Cyber Sécurité
    Inscrit en
    Mai 2004
    Messages
    10 150
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Manager / Cyber Sécurité

    Informations forums :
    Inscription : Mai 2004
    Messages : 10 150
    Par défaut
    Bonjour,

    Citation Envoyé par narpu Voir le message
    je debute a la programmation C et je vousrai savoir les fautes commises ici :
    Commence par mettre des options de compilation a ton compilateur, il te montrera beaucoup d'erreurs :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    % gcc -Wall -Wextra -O2 test.c 
    test.c: In function 'main':
    test.c:14: warning: suggest parentheses around assignment used as truth value
    test.c:22: warning: too few arguments for format
    test.c:23: warning: format '%d' expects type 'int *', but argument 2 has type 'int'
    test.c:29: warning: statement with no effect
    test.c:29: error: expected expression before ')' token
    test.c:36: warning: passing argument 1 of 'toupper' makes integer from pointer without a cast
    test.c:36: error: incompatible types in assignment
    test.c:52: warning: suggest parentheses around assignment used as truth value
    test.c:53: warning: suggest parentheses around assignment used as truth value
    test.c:63: warning: suggest parentheses around assignment used as truth value
    test.c:65: warning: suggest parentheses around assignment used as truth value
    test.c:68: warning: passing argument 1 of 'toupper' makes integer from pointer without a cast
    test.c:68: error: incompatible types in assignment
    test.c:9: warning: unused variable 'choixA'
    test.c:7: warning: unused parameter 'argc'
    test.c:7: warning: unused parameter 'argv'
    "La route est longue, mais le chemin est libre" -- https://framasoft.org/
    Les règles du forum

Discussions similaires

  1. Réponses: 4
    Dernier message: 25/01/2008, 17h24
  2. addKeyListener, je vois pas ou est le probleme.
    Par 19cmos83 dans le forum AWT/Swing
    Réponses: 2
    Dernier message: 30/08/2007, 12h32
  3. Probleme requete svp
    Par swiixz dans le forum Langage SQL
    Réponses: 5
    Dernier message: 21/06/2007, 19h43
  4. probleme Jinternalframe svp
    Par swiixz dans le forum AWT/Swing
    Réponses: 13
    Dernier message: 30/05/2007, 18h38
  5. probleme projet svp
    Par ruspy dans le forum C++
    Réponses: 3
    Dernier message: 20/04/2006, 08h45

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo