[Debutant en C]ne, m en voulez pas a quoi sert le MODULO ??

ne, m en voulez pas a quoi sert le MODULO ?? [Debutant en C] - Programmation

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 ;)
 
@+ :hello:


---------------
profitez de la vie , et volez !
Reply

Marsh Posté le 17-06-2001 à 15:26:01   

Reply

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]

Reply

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.


---------------
-----------------------
Reply

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 :)


---------------
profitez de la vie , et volez !
Reply

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.


---------------
1km = 1024m
Reply

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]

Reply

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.


---------------
From Pymousses.
Reply

Marsh Posté le 18-06-2001 à 15:57:47    

Oula là je suis vraiment trop con, Merci beaucoup les gars :) !


---------------
profitez de la vie , et volez !
Reply

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 !


---------------
profitez de la vie , et volez !
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed