Séparation d'une variable date 1902 en 19 et 02 comment ? - C - Programmation
Marsh Posté le 28-04-2005 à 16:38:39
Si ta variable date est un entier, suffit de diviser par 100, et de garder la partie entière, pour obtenir le 19. Et pour le 02... je te laisse trouver
Marsh Posté le 28-04-2005 à 16:40:27
de quel type vers quel type ? parce que ca tombe sous le sens
.
Marsh Posté le 28-04-2005 à 18:34:42
Je vous dit une partie de mon énoncé...
Si m >=3, on soustrait 2 à m sinon on ajoute 10 à m et on retranche 1 à a. On appelle s la centaine d'année et an l'année dans le siècle.
Exemple : Le 01 février 1902, j = 1, m = 1, a = 1902, donc puisque m < 3, on fait m = 12 et a = 1901. La centaine d'année vaut 19, l'année dans le siècle 01 et nb vaut -1. Donc, le reste de nb par la division par 7 vaut -1, qui est négatif et transformé en 6. Ceci correspond à Samedi.
Ca me donne mal à la tête ce genre de truc, tout est ok normalement niveau prog à part l'histoire de l'année et du siecle (var : an et s).
Je pige pas trop comment faire. Merci d'avance pour vos réponses
Marsh Posté le 28-04-2005 à 18:39:26
a = date / 100; /* division euclidienne */
an = date - a * 100;
qu'est ce que tu pige pas ?
Marsh Posté le 28-04-2005 à 19:21:01
Laissez je vais demander de l'aide à mon prof. Merci quand même.
Marsh Posté le 28-04-2005 à 19:23:34
skelter a écrit : a = date / 100; /* division euclidienne */ |
Meuh ?
an = date % 100;
Non ?
Marsh Posté le 30-04-2005 à 11:17:30
on vous a dit dans le premier post que c'était une chaîne de caractères
Marsh Posté le 30-04-2005 à 11:25:29
si c'est bien une chaîne et pas un entier, alors convertir la chaîne "1902" en entier 1902 avec la fonction atoi
http://www.mkssoftware.com/docs/man3/atoi.3.asp
Marsh Posté le 30-04-2005 à 11:32:33
blazkowicz a écrit : si c'est bien une chaîne et pas un entier, alors convertir la chaîne "1902" en entier 1902 avec la fonction atoi |
Bof... si c'est une chaîne de caractères avec 4 digits ben on copie les deux premiers dans une chaîne avec 2 digits et les deux autres dans une autre chaîne.
La simplicité de cette solution me laisse penser que le problème est plus compliqué que cela n'a été exposé ici
Marsh Posté le 30-04-2005 à 11:39:40
j'ai pensé à copier dans deux chaînes mais c'est plus compliqué je pense
vu la suite de l'énoncé 19 et 02 sont utilisé pour un algo qui sort le jour de la semaine (jme souviens avoir fait ça en première année lol), il faut des entiers.
rien de compliqué à faire.
nDeXok, pour "transformer le -1 en 6" le modulo ça doit le faire (nb % 7)
Marsh Posté le 30-04-2005 à 12:29:53
blazkowicz a écrit : j'ai pensé à copier dans deux chaînes mais c'est plus compliqué je pense |
sscanf, les formats, tu connais ?
Marsh Posté le 30-04-2005 à 12:35:57
skelter a écrit : sscanf, les formats, tu connais ? |
oui mais j'y aurais jamais pensé
(j'utilise plutôt getchar, et notamment juste un getchar() tout seul pour faire des pauses parfois)
Marsh Posté le 28-04-2005 à 16:36:26
Bonjour à tous, je ne sais pas comment faire pour quand
par exemple dans une date 1902 sépare en deux variables pour, ex : a = 19 et an = 02
C'est avec les caractères mais j'ai pas encore étudié ça en cours... Quelqu'un peut m'aider ? merci d'avance.