Problème avec l'opérateur % [C++] - C++ - Programmation
Marsh Posté le 25-11-2007 à 17:52:04
size() est visiblement de type unsigned donc il va chercher à te retourner un modulo compris entre 0 et 20 :
Code :
|
$ g++ taiste.cc |
Cast ton 20 en signé :
Code :
|
$ g++ taiste.cc |
Marsh Posté le 25-11-2007 à 17:58:37
je n'ai pas compris votre deuxième bloc ce qu'il signifie.
et je viens de m'apercevoir qu'en faisant cout<<(-1)%int(ensembles[obstacle].size())<<endl; on obtient bien le résultat voulu.
Pourtant ensembles[obstacle].size() est bien de type int n'est ce pas ?
Marsh Posté le 25-11-2007 à 18:01:08
nisalon_caje a écrit : je n'ai pas compris votre deuxième bloc ce qu'il signifie. |
Le deuxième bloc montre juste la compilation + exécution sous unixoïde.
Marsh Posté le 25-11-2007 à 18:05:07
Elmoricq -> merci pour ta réponse
KangOl -> cela peut changer quelque chose ici ou cela provient d'autre chose ?
Marsh Posté le 25-11-2007 à 18:07:06
nisalon_caje a écrit : KangOl -> cela peut changer quelque chose ici ou cela provient d'autre chose ? |
Qu'est-ce qui peut changer quelque chose, je ne te suis pas ?
(s'il s'agit du type retourné par size(), il semble bien que oui, cela change parfois quelque chose )
Marsh Posté le 25-11-2007 à 18:08:23
ben ici est ce que le fait que le .size() est un unsigned int plutot qu'un int explique le résultat faux
Marsh Posté le 25-11-2007 à 17:25:27
Bonjour je me creuse la tête sur le problème suivant auquel je ne parviens pas à trouver de solution :
j'ai
Cela m'affiche le résultat suivant :
-1
20
15
Je ne comprends pas pourquoi j'obtiens 15 et non pas -1 à la fin
voila voila merci d'avance de votre aide
nc