Topic de Sonkfkdks :

Je hais les structures avancées en programmation bordel

Suffit de n'avoir aucune solution et t'y restes coincé des jours :nonnon:

Votre programme doit lire un entier nbMarchands (non nul) puis les nbMarchands entiers suivants, qui indiquent le prix des galettes chez chaque marchand, de la position 1 à la position nbMarchands. Votre programme devra ensuite afficher la position du plus petit de ces prix. En cas d'égalité entre deux prix, on prendra la position la plus grande. Tous les prix et positions sont positifs et ne dépassent pas 1 million.

A cause d'un putain d'indice, je reste bloqué alors que j'ai trouvé le prix le plus bas :nonnon:

# Lire l'entier sur la variable nbMarchands 
nbMarchands = int(input())
# Initialisation de la variable PlusPetitPrix 
PlusPetitPrix = 1000000
# Initialisation du compteur  
Compteur = 0 
# Si le nbMarchands est non nul : 
if nbMarchands > 0 :
   ## Pour chaque marchand :
   for marchand in range(nbMarchands) : 
      Prix = int(input())
      # Si le plus petit marchand est inférieur à la variable, la réintialiser  
      if PlusPetitPrix > Prix : 
         PlusPetitPrix = Prix
         Compteur = marchand 
         
         if PlusPetitPrix == Prix : 
                   
             
   # Afficher le plus petit compteur 
   print(Compteur)
Il y a pas le choix, je vais devoir créer une autre variable à la con :nonnon:
Faut schématiser l'auteur, ça aide toujours
# Lire l'entier sur la variable nbMarchands 
nbMarchands = int(input())
# Initialisation de la variable PlusPetitPrix 
PlusPetitPrix = 1000000
# Initialisation de la variable de position 
position = -1
# Si le nbMarchands est non nul : 
if nbMarchands > 0 :
   ## Pour chaque marchand :
   for marchand in range(nbMarchands) : 
      Prix = int(input())
      # Si le plus petit marchand est inférieur à la variable, la réintialiser  
      if PlusPetitPrix > Prix : 
         PlusPetitPrix = Prix
         position = marchand + 1
      # Si le prix est égal au plus petit prix, mise à jour de la position
      elif PlusPetitPrix == Prix:
         position = max(position, marchand + 1)
   # Afficher la position du plus petit prix 
   print(position)

Voila ce que propose le chaton gpt

Qui plus est c'est vraiment pas compliqué, tu te noies dans un verre d'eau.
Je comprends pas où tu bloques l'op t'as déjà tout fait quasiment.

Le 09 février 2023 à 15:43:26 QLFCelinent12_3 a écrit :
Je comprends pas où tu bloques l'op t'as déjà tout fait quasiment.

Par exemple, je demande 5 chiffres : 1, 2, 3, 1, 5

Au lieu d'afficher l'indice 1, l'énoncé me demande afficher l'indice 4 :)

Le 09 février 2023 à 15:42:16 :
Qui plus est c'est vraiment pas compliqué, tu te noies dans un verre d'eau.

J'ai pas le droit d'utiliser de fonction max, sinon c'est trop facile :)

Le 09 février 2023 à 15:45:06 :

Le 09 février 2023 à 15:43:26 QLFCelinent12_3 a écrit :
Je comprends pas où tu bloques l'op t'as déjà tout fait quasiment.

Par exemple, je demande 5 chiffres : 1, 2, 3, 1, 5

Au lieu d'afficher l'indice 1, l'énoncé me demande afficher l'indice 4 :)

Bha au lieu des lignes

      # Si le plus petit marchand est inférieur à la variable, la réintialiser  
      if PlusPetitPrix > Prix : 

Il faut mettre

      # Si le plus petit marchand est inférieur ou égale à la variable, la réintialiser  
      if PlusPetitPrix >= Prix : 

Non ?

# Lire l'entier sur la variable nbMarchands 
nbMarchands = int(input())
# Initialisation de la variable PlusPetitPrix 
PlusPetitPrix = 1000000
# Initialisation du compteur  
Compteur = 0 
# Si le nbMarchands est non nul : 
if nbMarchands > 0 :
   ## Pour chaque marchand :
   for marchand in range(nbMarchands) : 
      Prix = int(input())
      # Si le plus petit marchand est inférieur à la variable, la réintialiser  
      if PlusPetitPrix > Prix : 
         PlusPetitPrix = Prix
         Compteur = marchand + 1
      # Si le prix est égal à PlusPetitPrix, mettre à jour Compteur avec la position la plus élevée
      elif PlusPetitPrix == Prix :
         Compteur = (marchand + 1) if (marchand + 1) > Compteur else Compteur
   # Afficher le plus petit compteur 
   print(Compteur)

Le chat galère

QLFCelinent12_3 : Je l'ai fait, maintenant regarde :
https://image.noelshack.com/fichiers/2023/06/4/1675954833-capture-d-ecran-2023-02-09-160013.png
Taku : Je l'ai essayé aussi. Il fait n'importe quoi.
Qu'est ce que tu appels indice ?

Le 09 février 2023 à 16:05:53 :
Qu'est ce que tu appels indice ?

La position des nombres.

C'est bon j'ai trouvé la solution :rire:

# Lire l'entier sur la variable nbMarchands 
nbMarchands = int(input())
# Initialisation de la variable PlusPetitPrix 
PlusPetitPrix = 1000000
# Initialisation du compteur  
Compteur = 0 
# Si le nbMarchands est non nul : 
if nbMarchands > 0 :
   ## Pour chaque marchand :
   for marchand in range(nbMarchands) : 
      Prix = int(input())
      # Si le plus petit marchand est inférieur à la variable, la réintialiser  
      if PlusPetitPrix >= Prix : 
         PlusPetitPrix = Prix
         '''Compteur = marchand + 1 '''
             
   # Afficher le plus petit compteur 
   print(Compteur)

Le truc en gras entre guillemets, c'est ce que j'aurais du mettre d'après le correcteur :rire:
Putain j'ai le seum, en plus j'ai trouvé ça au hasard :rire:

Je comprends pas pourquoi lepluspetitprix est a 1million sachant que c'est le max
Juste une histoire d'incrémentation ?

Données du topic

Auteur
Sonkfkdks
Date de création
9 février 2023 à 15:35:15
Nb. messages archivés
24
Nb. messages JVC
24
En ligne sur JvArchive 476