Problème dans mon programme

SageApprentit Messages postés 192 Date d'inscription   Statut Membre -  
 Nobody -
Bonjour, je voudrais une fois mon programme compilé qu'il m'affiche l'heure, les minutes et les secondes voici mon code source car sa ne marche pas, aidez moi svp.

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

void decoupeSeconde(long* pointeurHeures, long* pointeurMinutes, long* pointeurSecondes);

int main(int argc, char *argv[])
{
long heures = 0, minutes = 0, secondes = 0;

printf("Entrez des secondes pour que le programme traduisent ce-ci en heures et minutes et en secondes :\n\n\n");
scanf("%ld", &secondes);

decoupeSeconde(&heures, &minutes, &secondes);// On envoie l'adresse de heures et minutes et des secondes

// Cette fois, les valeurs ont été modifiées !
printf("%ld heures et %ld minutes et %ld secondes\n\n\n", heures, minutes, secondes);
system("PAUSE");
return 0;
}

void decoupeSeconde(long* pointeurHeures, long* pointeurMinutes, long* pointeurSecondes)
{
/* Attention à ne pas oublier de mettre une étoile devant le nom
des pointeurs ! Comme ça, vous pouvez modifier la valeur des variables,
et non leur adresse ! Vous ne voudriez pas diviser des adresses
n'est-ce pas ? ;o) */
*pointeurHeures = *pointeurMinutes/ 60;
*pointeurMinutes = *pointeurSecondes % 60;
*pointeurSecondes = *pointeurSecondes % 60;

}
Configuration: Windows Vista
Internet Explorer 7.0

6 réponses

  1. SageApprentit Messages postés 192 Date d'inscription   Statut Membre 24
     
    Quand j'entre 3600 sa me met 0 heures et 60 minutes et 0 secondes.
    0
  2. Nobody
     
    #include <stdio.h>
    #include <stdlib.h>

    void decoupeSeconde(long* pointeurHeures, long* pointeurMinutes, long* pointeurSecondes);

    int main(int argc, char *argv[])
    {
    long heures = 0, minutes = 0, secondes = 0;

    printf("Entrez des secondes pour que le programme traduisent ce-ci en heures et minutes et en secondes :\n\n\n");
    scanf("%ld", &secondes);

    decoupeSeconde(&heures, &minutes, &secondes);// On envoie l'adresse de heures et minutes et des secondes

    // Cette fois, les valeurs ont été modifiées !
    printf("%ld heures et %ld minutes et %ld secondes\n\n\n", heures, minutes, secondes);
    system("PAUSE");
    return 0;
    }

    void decoupeSeconde(long* pointeurHeures, long* pointeurMinutes, long* pointeurSecondes)
    {
    /* Attention à ne pas oublier de mettre une étoile devant le nom
    des pointeurs ! Comme ça, vous pouvez modifier la valeur des variables,
    et non leur adresse ! Vous ne voudriez pas diviser des adresses
    n'est-ce pas ? ;o) */
    *pointeurHeures = (*pointeurSecondes - *pointeurSecondes % 3600) / 3600;
    *pointeurMinutes = (*pointeurSecondes - *pointeurHeures * 3600 - *pointeurSecondes % 60) / 60;
    *pointeurSecondes = *pointeurSecondes - *pointeurHeures * 3600 - *pointeurMinutes *60;

    }
    0
  3. SageApprentit Messages postés 192 Date d'inscription   Statut Membre 24
     
    Merci nobody, peut tu m'expliquer ?
    0
  4. Nobody
     
    Moi, ton progarmme me donne :
    Entrez des secondes pour que le programme traduisent ce-ci en heures et minutes et en secondes :
    3600
    0 heures et 0 minutes et 0 secondes

    Dans ton programme d'origine :
    - *pointeurMinutes est initialisé à 0 -> *pointeurHeures = *pointeursMinutes/60 sera toujours == 0
    - % -> reste de la division et donc *pointeursSecondes % 60 donne le nombre de secondes qui reste après avoir décompter les minutes entières.
    0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. SageApprentit Messages postés 192 Date d'inscription   Statut Membre 24
     
    Ok merci toi aussi tu apprends la prog ?
    0
  7. Nobody
     
    Ca fait au moins 10 ans que je n'ai plus fait de prog mais faudrait que je m'y remette ;)
    0