Anomalie dans un programme

Golden0579 Messages postés 1 Date d'inscription   Statut Membre Dernière intervention   -  
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

4 réponses

Utilisateur anonyme
 

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.


0
PierrotLeFou
 

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.

0
Utilisateur anonyme
 

Certes, mais j'espérais que le mettre sur la piste suffirait à ce qu'il trouve la solution par lui même, au moins en recherchant dans son cours.

On retient mieux ce qui nous à coûté un effort pour l'obtenir que ce qui est tombé tout cuit.

1
Phil_1857 Messages postés 1872 Date d'inscription   Statut Membre Dernière intervention   168
 

Bonjour,

Après, est-ce que l'on peut aussi lui suggérer de mettre ses 3 nombres

dans une liste et d'utiliser la commande qui renvoie le nb maxi de la liste ?

(déjà pour cette première directive)

0
Utilisateur anonyme
 

Je ne pense pas qu'il en soit arrivé à ce stade dans sa formation.

1
Phil_1857 Messages postés 1872 Date d'inscription   Statut Membre Dernière intervention   168
 

Hello Golden0579,

Alors, as-tu de la réussite ?

0