Anomalie dans un programme

Golden0579 Messages postés 1 Date d'inscription samedi 20 janvier 2024 Statut Membre Dernière intervention 20 janvier 2024 - Modifié le 25 janv. 2024 à 20:44
Phil_1857 Messages postés 1872 Date d'inscription lundi 23 mars 2020 Statut Membre Dernière intervention 28 février 2024 - 23 janv. 2024 à 09:59

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
20 janv. 2024 à 17:29

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
20 janv. 2024 à 18:37

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
21 janv. 2024 à 09:33

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 lundi 23 mars 2020 Statut Membre Dernière intervention 28 février 2024 168
21 janv. 2024 à 11:14

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
21 janv. 2024 à 11:53

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

1
Phil_1857 Messages postés 1872 Date d'inscription lundi 23 mars 2020 Statut Membre Dernière intervention 28 février 2024 168
23 janv. 2024 à 09:59

Hello Golden0579,

Alors, as-tu de la réussite ?

0