Problème dans mon programme
Fermé
SageApprentit
Messages postés
177
Date d'inscription
dimanche 19 octobre 2008
Statut
Membre
Dernière intervention
11 octobre 2009
-
1 nov. 2008 à 19:20
Nobody - 1 nov. 2008 à 20:53
Nobody - 1 nov. 2008 à 20:53
A voir également:
- Problème dans mon programme
- Programme demarrage windows 10 - Guide
- Cette action ne peut pas être réalisée car le fichier est ouvert dans un autre programme - Guide
- Désinstaller programme windows 10 - Guide
- Programme démarrage windows 10 - Guide
- Forcer la fermeture d'un programme - Guide
6 réponses
SageApprentit
Messages postés
177
Date d'inscription
dimanche 19 octobre 2008
Statut
Membre
Dernière intervention
11 octobre 2009
24
1 nov. 2008 à 20:00
1 nov. 2008 à 20:00
Quand j'entre 3600 sa me met 0 heures et 60 minutes et 0 secondes.
#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;
}
#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;
}
SageApprentit
Messages postés
177
Date d'inscription
dimanche 19 octobre 2008
Statut
Membre
Dernière intervention
11 octobre 2009
24
1 nov. 2008 à 20:03
1 nov. 2008 à 20:03
Merci nobody, peut tu m'expliquer ?
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.
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.
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
SageApprentit
Messages postés
177
Date d'inscription
dimanche 19 octobre 2008
Statut
Membre
Dernière intervention
11 octobre 2009
24
1 nov. 2008 à 20:35
1 nov. 2008 à 20:35
Ok merci toi aussi tu apprends la prog ?