Anomalie dans un programme
Phil_1857 Messages postés 1872 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
J'ai un petit problème avec mon code que voici :
def grand3(c1, c2, c3): c1 = float(input("c1 = ")) c2 = float(input("c2 = ")) c3 = float(input("c3 = ")) if c1 > c2 and c3: return "c1" elif c2 > c1 and c3: return "c2" elif c3 > c1 and c2: return "c3" else: return "il y a un problème"
Il permet d'entrer 3 nombres et de dire quel est le plus grand (et dire s'il y en a au moins 2 pareils).
- Quand je mets que le premier est le plus grand, ça marche, ainsi que pour le 2eme et l'erreur.
- Mais quand je mets que c'est le 3eme, il me dit que le 2eme est le plus grand.
Pourquoi ?
merci de votre réponse
- Anomalie dans un programme
- Programme demarrage windows - Guide
- Cette action ne peut pas être réalisée car le fichier est ouvert dans un autre programme - Guide
- Mettre en veille un programme - Guide
- Forcer la fermeture d'un programme - Guide
- Desinstaller un programme - Guide
4 réponses
Bonjour
pour tes prochains posts, merci de choisir le forum Python et de mettre en forme ton code comme décrit là https://codes-sources.commentcamarche.net/faq/11288-poster-un-extrait-de-code
Cette ligne
if c1 > c2 and c3:
veut dire si c1 est supérieur à c2 et si c3 existe.
Idem pour les suivantes.
Comme c3 et c2 existent toujours, ce qui compte pour le résultat, c'est uniquement la première partie.
Donc si c2 est supérieur à c1, ça t'affiche c2.
Si je peux me permettre Whismeril,
Dans le langage courant on dira que c1 est plus grand (ou petit) que c2 et c3, d'où l'erreur.
En programmation, il faut dire que c1 est plus grand que c2 et c1 est plus grand que c3.