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 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152
| #include<stdio.h>
typedef struct{
int heure;
int minute;
int seconde;
}TEMPS;
TEMPS entree(TEMPS t) {
puts("Entrez les heures");
scanf_s("%d",&(t.heure));
if(t.heure>23){
printf("Vous avez entre\n");
printf("%d",t.heure);
printf("\n");
while (t.heure>23){
puts("Les heures doivent etre comprises entre 0 et 23. Recommencez.\n");
scanf_s("%d",&(t.heure));}
}
puts("Entrez les minutes");
scanf_s("%d",&(t.minute));
if(t.minute>59){
printf("Vous avez entre\n");
printf("%d",t.minute);
printf("\n");
while (t.minute>59){
puts("Les minutes doivent etre comprises entre 0 et 59. Recommencez.\n");
scanf_s("%d",&(t.minute));}
}
puts("Entrez les secondes");
scanf_s("%d",&(t.seconde));
if(t.seconde>59){
printf("Vous avez entre\n");
printf("%d",t.seconde);
printf("\n");
while (t.seconde>59){
puts("Les secondes doivent etre comprises entre 0 et 59. Recommencez.\n");
scanf_s("%d",&(t.seconde));}
}
return t;
}
//b- Ecriture du sous programme sortie()
int sortie(TEMPS t)
{
printf("L'heure saisie est:\n");
printf("%d H %d min %d sec \n", t.heure,t.minute,t.seconde);
return 0;
}
//écriture du sous-programme post(t1,t2)
int post(TEMPS t1, TEMPS t2){
if (t1.heure < t2.heure) {
return -1;
}
if (t1.heure > t2.heure) {
return 1;
}
if (t1.heure == t2.heure ) {
if (t1.minute < t2.minute ) {
return -1;
}
if (t1.minute > t2.minute ) {
return 1;
}
if (t1.minute == t2.minute ) {
if (t1.seconde < t2.seconde) {
return -1;
}
if (t1.seconde> t2.seconde) {
return 1;
}
if (t1.seconde== t2.seconde) {
return 0;
}
}
}
return 0;
}
void main () {
TEMPS t1,t2,t;
//Premier appel de entree pour t1
printf("Entrez du premier temps (t1): \n");
t1=entree(t); // LE PROBLEME EST ICI !!!
//Deuxieme appel de entree pour t2
printf("Entrez du deuxieme temps (t2): \n");
t2=entree(t);
//Appel a la fonction post(t1,t2)
printf("Calcul de l'antériorité des temps...\n");
post(t1,t2);
//affichage de l'antériorité des temps
if(post(t1,t2)==1) {
printf ("t1 est posterieur a t2 \n");
}
if(post(t1,t2)==-1) {
printf ("t1 est anterieur a t2 \n");
TEMPS t0;
t0.heure=t1.heure;
t1.heure=t2.heure;
t2.heure=t0.heure; //ici
t0.minute=t1.minute;
t1.minute=t2.minute; //échange des valeurs
t2.minute=t0.minute;
t0.seconde=t1.seconde;
t1.seconde=t2.seconde; //de t1 et t2
t2.seconde=t0.seconde;
}
if(post(t1,t2)== 0) {
printf ("t1 et t2 sont egaux \n");
}
} |
Partager