Me corriger en C

Résolu
kiki74000 Messages postés 67 Statut Membre -  
kiki74000 Messages postés 67 Statut Membre -
Bonjour,

J'ai créer un mini code pour mes éxemple mais je bug je ne comprend pas, le voici:

#include <stdio.h>
#include <stdlib.h>
#include <windows.h>


void vies (int *pvies_restantes, int *pvies_perdues);

    int vies_restantes = 10;

    int vies_perdues = 0;

    int i;


int main (int argc, char *argv[])

{



    for (vies_restantes = 10; vies_restantes != 0; i++)

{


        vies(&vies_perdues, &vies_restantes);


        printf("Il vous reste %d vies, vous en avez deja perdu %d\n\n", vies_restantes, vies_perdues);
}


return 0;
}

void vies (int *pvies_restantes, int *pvies_perdues)

{

    *pvies_restantes--;
    *pvies_perdues++;

}


le code n'éxécute pas les instructiond de la deuxieme fonction,

Merci

7 réponses

  1. kiki74000 Messages postés 67 Statut Membre 3
     
    personne?
    0
  2. kiki74000 Messages postés 67 Statut Membre 3
     
    Une idée
    0
  3. kiki74000 Messages postés 67 Statut Membre 3
     
    Meme une toute petite
    0
  4. loupius Messages postés 789 Statut Membre 148
     
    Quelle est l'utilité de i ?
    Bonne continuation.
    0
    1. loupius Messages postés 789 Statut Membre 148
       
      vies(&vies_perdues, &vies_restantes);
      void vies (int *pvies_restantes, int *pvies_perdues)
      for (vies_restantes = 10; vies_restantes != 0; i++)

      Alors c'est vies_restantes ou vies_perdues qui est incrémenté... si c'est vies_restantes, on n'est pas sorti de l'auberge... et enfin, à condition bien sûr que la valeur soit incrémentée et non pas le pointeur !!!
      Bonne réflexion.
      0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. ProgMad Messages postés 90 Statut Membre
     
    Salut,

    1: l'ordre d'appel des deux paramètres de ta fonction n'est pas bon.
    2: à la place du for utilise while(vies_restantes != 0) .
    3: ta fonction est belle et bien appelé. Utilise les parenthèses .
    void vies (int *pvies_restantes, int *pvies_perdues){
        (*pvies_restantes)--;
        (*pvies_perdues)++;
    }
    

    4: tu utilise des variables globaux qui peuvent être appeler dans toute les fonctions du programme , donc pas besoin de pointeurs.
    0
  7. kiki74000 Messages postés 67 Statut Membre 3
     
    alors pour l'utilité de i et l'utilisation des pointeurs,

    i c'est pour apres,

    pointeur, c'est pour l'éxercice (pour s'entrainer quoi)

    sinon je vais essayer et je vous dit sa
    0
  8. kiki74000 Messages postés 67 Statut Membre 3
     
    ah bah voila un code qui marche^^

    resultat :

    Il vous reste 9 vies, vous en avez deja perdu 1

    Il vous reste 8 vies, vous en avez deja perdu 2

    Il vous reste 7 vies, vous en avez deja perdu 3

    Il vous reste 6 vies, vous en avez deja perdu 4

    Il vous reste 5 vies, vous en avez deja perdu 5

    Il vous reste 4 vies, vous en avez deja perdu 6

    Il vous reste 3 vies, vous en avez deja perdu 7

    Il vous reste 2 vies, vous en avez deja perdu 8

    Il vous reste 1 vies, vous en avez deja perdu 9

    Il vous reste 0 vies, vous en avez deja perdu 10

    Process returned 0 (0x0) execution time : 0.255 s
    Press any key to continue.

    merki c'est parfait mon prof va etre content ^^
    0