Bonjour,j'aimerais qsavoir comment on fait un modulo en c. j'ai effectué de la manière suivant mais j'ai une erreur de compilation
angle est de type double.Code:
1
2 angle=(angle)%(360.00);
Merci.
Version imprimable
Bonjour,j'aimerais qsavoir comment on fait un modulo en c. j'ai effectué de la manière suivant mais j'ai une erreur de compilation
angle est de type double.Code:
1
2 angle=(angle)%(360.00);
Merci.
salut, je crois qu'il faut que tu mettes la libraires mathématiques (option -lm quand tu compiles).
Ensuite, je crois que le modulo s'effectue sur des entiers (et non des doubles) : je ne pense pas que dire 6.3 modulo 2.7 ait un sens (à vérifier)
Pas besoin de la bibliothèque mathématique.
En revanche le modulo ne s'effectue que sur des entiers.
Utilise les fonctions fmod ou fmodl de la bibliothèque
Le modulo retournant un reste, ce reste est forcément entier non ? 8O
C'est le quotient qui est entier, le reste peut ne pas l'etre.Citation:
Envoyé par muad'dib
Tu sous-entends une division d'entiers, ce n'est pas le cas pour fmod qui est une division de float (fmod) si je ne m'abuse.Citation:
Envoyé par muad'dib
Entendons-nous sur les termes ! Pour moi un modulo, c'est le reste d'une division, c'est à direOr si ce 3 est déja le reste d'une division, comment pourrait-il être autre qu'entier ??Citation:
53 % 10 va donner 3 (5,3)
5.5 divise par 2.5 vaut 2 avec un reste de 0.5
Bon sang je comprend plus rien ... sur ma calculatrice, 5.5/2.5 = 2.2, d'oú sors-tu un reste de 0.5 ? pour moi, le reste est 2 !Citation:
Envoyé par Jean-Marc.Bourguet
Oula tu as oublié tes cours toi de math toi non ?Citation:
Envoyé par muad'dib
2 * 2.5 = 5
5 + 0.5 = 5.5
Le résultat est entier pas le reste.
:mrgreen: je pige toujours pas je dois être un peu cucu la praline ... je sens que je vais me faire un :google: + modulo ça va être vite fait :mouarf:
OK j'avoue m'être assis au fond de la classe en cours de math ... mais quand même je reste persuadé que le prof nous a appris que le modulo était ce qu'il restait après la virgule lors d'une division !!!!
Ou alors Helzeimer me guette ... :?
Alzeihmer :PCitation:
Envoyé par muad'dib
Plus sérieusement, si tu le fais en texte :
modulo signifie : chaque fois que c'est un multiple, on a 0, et sinon on a la différence entre le nombre et le multiple inférieur...
Donc en entier, effectivement, le reste est entier :
5 % 2 = 1 (2*2 + 1)
Mais en flottant, c'est différent :
5.5 % 2.5 = 0.5 (2*2.5 + 0.5)
C'est correctement expliqué ici :
http://www.opengroup.org/onlinepubs/...ions/fmod.html
:mrgreen:Citation:
...
double fmod(double x, double y);
float fmodf(float x, float y);
long double fmodl(long double x, long double y);
...
These functions shall return the floating-point remainder of the division of x by y.
...
These functions shall return the value x- i* y, for some integer i such that, if y is non-zero, the result has the same sign as x and magnitude less than the magnitude of y.
...
Salut,Citation:
Envoyé par muad'dib
Pose toi la question : " Combien de fois est-ce que je peux mettre 2.5 dans 5.5 ?" La réponse est 2 . ensuite il te reste 0.5 :)
OK ! Merci à vous tous ! C'est plus clair dans mon esprit à présent .. :mouarf:
Au moins j'aurais appris (enfin "rectifié") une de mes connaissances !
:aie: :mouarf:Citation:
90% du temps la source du bug se situe entre le clavier et la chaise
Ahahah énorme ! J'ai mis ça inconsciemment mais j'ai du me reconnaitre dedans .... :yaisse2: :yaisse2: :yaisse2:Citation:
Envoyé par souviron34