Modulo en C
rayxx
-
Char Snipeur Messages postés 10112 Date d'inscription Statut Contributeur Dernière intervention -
Char Snipeur Messages postés 10112 Date d'inscription Statut Contributeur Dernière intervention -
Bonjour,
je voudrais juste savoir pourquoi, quand je demande de m'afficher (-1) modulo 6 (par exemple) en C, il me met -1, alors que normalement c'est 5.
Merci.
je voudrais juste savoir pourquoi, quand je demande de m'afficher (-1) modulo 6 (par exemple) en C, il me met -1, alors que normalement c'est 5.
Merci.
Configuration: Windows 7 Safari 532.5
6 réponses
-
Je pense que le modulo ne marche pas pour un négatif...
Pour contourner ce problème, essaie :
- modulo de la valeur absolue de ton nombre => |-1|
- tu fais son modulo par rapport à 6 => 1
- tu fais : 6 - (le modulo => 1) = 5 !!
Ca devrait marcher ;)
Aplouch
Toopa -
merci, mais il y aurait pas une méthode un peu plus simple ? parce que la ça va me faire changer pas mal de truc dans mon programme si je fais comme ça.
-
-1%6=-1
-20%6=-2
20%6=2
C'est un peu comme si il factorisait le "-"... -
Tu trouves ca compliqué ?
int nouvelleValeur = sqrt( pow(taValeur,2) ) ; // peut être meme que abs(taValeur) int modulo = nouvelleValeur % 6; int moduloFinal = 6 - modulo;
Ca prend trois lignes :) -
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question -
Je suis d'accord que c'est pas non plus super compliqué, c'est juste que je l'utilise plusieurs fois dans mon programme. Je pourrais rajouter la fonction modulo qui fait ces opérations mais bon, je me disais qu'il y avait peut être une méthode plus directe.
-
ou alors, pour prendre en compte tout les cas :
modulo=i>0?i%6:6+i%6;