ne, m en voulez pas a quoi sert le MODULO ?? [Debutant en C] - Programmation
Marsh Posté le 17-06-2001 à 15:40:49
Ben le modulo va juste te donner le reste de la division
genre 4 % 3 = 1
pour ce qui est des '%' ds les printf (et accesoirement ds les scanf) ils n'ont rien avoir avec le modulo, ils indiquent le type de la variable a affiche et son emplacement
[edit]--Message édité par bounty2k--[/edit]
Marsh Posté le 17-06-2001 à 16:37:37
ah oui, et le code 32 bits a des unsigned (int) d'une longeur de 32 bits, donc la valeur limite est plus de 4 milliards au lieu de 65536 comme dans le temps jadis.
Marsh Posté le 17-06-2001 à 22:37:29
ok; merci beaucoup mais a quoi sert ces deux lignes ds ce prog :
mins_left = minutes % SECS_PER_MIN;
secs_left = seconds % SECS_PER_MIN;
Merci d avance , j attends vos réponses
Marsh Posté le 17-06-2001 à 23:04:57
janoscoder a écrit a écrit : ah oui, et le code 32 bits a des unsigned (int) d'une longeur de 32 bits, donc la valeur limite est plus de 4 milliards au lieu de 65536 comme dans le temps jadis. |
dans le temps de jadis, comme tu dis, les entiers étaient aussi codés sur 32bits, fallait juste les déclaré en long int. par opposition aux short int sur 16 bits.
les int toucour étaient, par défaut, soit sur 32bits ou sur 16 selon le compilateur.
Marsh Posté le 17-06-2001 à 23:21:06
volez a écrit a écrit : ok; merci beaucoup mais a quoi sert ces deux lignes ds ce prog : mins_left = minutes % SECS_PER_MIN; secs_left = seconds % SECS_PER_MIN; Merci d avance , j attends vos réponses |
C'est normal que tu comprennes pas.
Il faudrait écrire plutôt:
#define MINS_PER_HOUR 60
mins_left = minutes % MINS_PER_HOUR
mais comme il se trouve que comme SECS_PER_MIN = 60 également, on écrit ce que t'as mis (mais ça aide pas à la compréhension)
[edit]--Message édité par Verdoux--[/edit]
Marsh Posté le 18-06-2001 à 00:01:14
C'est tout simple. Ces deux lignes vont permettre de donner le nombre de minute et le nombre de secondes au cas ou l'utilisateur aura entrer un nombre de secondes non divisible par SECS_PER_MIN. Exemple l'utilisateur entre 125 (secondes).
125 n'est pas divisible par 60. Car il y a un reste.
Ce reste est mis dans secs_left.
=> 125 % 60 = 5.
Ce qui nous feras 2 min 5 secondes.
Marsh Posté le 18-06-2001 à 15:57:47
Oula là je suis vraiment trop con, Merci beaucoup les gars !
Marsh Posté le 18-06-2001 à 15:58:36
en tout cas j ai compris c'est déjà cà même si ca n est pas venu directement de moi :crazy !
Marsh Posté le 17-06-2001 à 15:26:01
Salut, désolé pour cette quetion completement debile, mais je ne vois pas la difference entre 12/4 =3
et 12 modulo 4 =3
est ce que par hasard le modulo donnerait la seul valeur entiere d une division exemple 14 modulo 3 = 4
alors que 14/3 = 4.7....
Deplus, il y a deuxlignes que je ne comprends pas ds ce prog pour debutant :
#include <stdio.h>
#define SECS_PER_MIN 60
#define SECS_PER_HOUR 3600
unsigned seconds, minutes, hours, secs_left, mins_left;
main()
{
printf("Entrez un nombre de secondes (< 65 000): " )
scanf("%d" , &seconds);
hours = seconds / SECS_PER_HOUR;
minutes = seconds / SECS_PER_MIN;
mins_left = minutes % SECS_PER_MIN;
secs_left = seconds % SECS_PER_MIN;
printf("%u seconds représentent ", seconds);
printf("%u h, %u m, et %u s\n" , hours, mins_left, secs_left);
return 0;
}
Donc, ce sont ces lignes que je ne comprends pas :
mins_left = minutes % SECS_PER_MIN;
secs_left = seconds % SECS_PER_MIN;
A quoi servent elles ?
DE plus, certains sigles me pertubent, ca ressemble au modulo mais cela ne semble t il pas avoir la meme utilité :
("%u h, %u m, et %u s\n"
ou encore cela :
("%d" , &seconds);
Merci de votre aide, j espere que les grands gourous du C/C++ seront aptes a me répondent simplement et efficacement
@+
---------------
profitez de la vie , et volez !