Bonjour,

J'ai une question sur le fonctionnement de ces deux programmes utilisant des variables globales. Le but du programme est convertir un nombre de minutes au format HH:MM.

le premier programme (qui ne fonctionne pas) est :

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
#include <stdio.h>
#include <stdlib.h>
 
long heures = 0, minutes = 90;
 
void decoupeMinutes(long heures, long minutes);
 
int main(int argc, char *argv[])
{
 
 
decoupeMinutes(heures, minutes);
printf("%ld heures et %ld minutes\n", heures, minutes);
return 0;
}
 
void decoupeMinutes(long heures, long minutes)
{
heures = minutes / 60; // 90 / 60 = 1
minutes = minutes % 60; // 90 % 60 = 30 (rappelez-vous : modulo = reste de la division, "90 divisés par 60 font 1, et il reste 30")
}
 
 
 
Le second programme (qui fonctionne bien) est : 
 
#include <stdio.h>
#include <stdlib.h>
long heures = 0, minutes = 90;
void decoupeMinutes();
 
int main(int argc, char *argv[])
{
decoupeMinutes();
printf("%ld heures et %ld minutes\n", heures, minutes);
return 0;
}
 
void decoupeMinutes()
{
heures = minutes / 60;
minutes = minutes % 60;
}
Mais, je n'arrive pas à comprendre, pourquoi le premier programme ne fonctionne pas, pourtant les variable heures et minutes sont globales?

Et pourquoi le second programme marche?
Merci d'avance pour tout effort de collaboration.