Partage
  • Partager sur Facebook
  • Partager sur Twitter

Erreur test valeur affiché non voulu

Sujet résolu
    27 février 2022 à 17:19:11

    Bonjour 

    Désoler pour le titre mais je savait comment le formuler 

    J'ai fait un éxo sur france ioi selon moi mon programme fonctionne correctement j'ai essayer plusieurs valeur tout fonctionne sauf que sur le site je crash au 11eme test et je ne c'est pas pourquoi 

    Voici l'exercise http://www.france-ioi.org/algo/task.php?idChapter=647&idTask=1939

    Voici mon code 

    #include <stdio.h>
    
    int main()
    {
       int lieux;
       int nbHabitant = 0;
       int compteur = 0;
      
      scanf("%d", &lieux);
      while (lieux >= 1)
        {
          scanf("%d", &nbHabitant);
          if(nbHabitant >= 10000)
          {
              nbHabitant = (nbHabitant - nbHabitant) + compteur;
              compteur++;
          }
          lieux--;
        }
      printf("%d", compteur);
    }

    Pourriez vous m'éclairer svp ?

    Edit : Vous pouvez tester le code vous même avec les valeur de l'exemple ainsi que les votre (le résultat est bon normalement) 

    -
    Edité par leprincefou 27 février 2022 à 17:32:22

    • Partager sur Facebook
    • Partager sur Twitter
    Notre mesure du possible rend possible l'impossible  
      27 février 2022 à 17:24:08

      Bonjour, Merci d'indiquer un titre de sujet en rapport avec votre problématique.

      Le message qui suit est une réponse automatique activée par un membre de l'équipe. Les réponses automatiques leur permettent d'éviter d'avoir à répéter de nombreuses fois la même chose, ce qui leur fait gagner du temps et leur permet de s'occuper des sujets qui méritent plus d'attention.
      Nous sommes néanmoins ouverts et si vous avez une question ou une remarque, n'hésitez pas à contacter la personne en question par Message Privé.

      Pour plus d'informations, nous vous invitons à lire les règles générales du forum

      Mauvais titre

      Le titre est un élément important qui ne doit pas être négligé. N'oubliez pas cette règle simple : le titre idéal résume la question que vous allez poser en une petite phrase. Il doit permettre aux visiteurs de se repérer facilement dans le forum visité et d'identifier le sujet à sa seule lecture.

      Vous pouvez utiliser divers préfixes comme [Erreur], [MySQL], [Compatibilité], etc... Aussi, pensez à consulter les règles propres à chaque forum (visibles dans les topics épinglés en haut des sections).

      De plus, choisir un bon titre permet de rendre plus faciles les recherches des autres membres.

      Les titres de type "besoin d'aide" ou "problème" ne sont pas tolérés.

      Pour modifier votre titre, éditez le premier message de votre sujet.

      (titre originel : Erreur test)

      Liens conseillés

      • Partager sur Facebook
      • Partager sur Twitter
        27 février 2022 à 17:45:51

        France IOI a écrit:

        Une ville étant un lieu dont la population est strictement supérieure à 10 000 habitants,



        • Partager sur Facebook
        • Partager sur Twitter
        ...
          27 février 2022 à 17:51:08

          Et à quoi sert la ligne 15 exactement ?
          • Partager sur Facebook
          • Partager sur Twitter
            27 février 2022 à 17:53:32

            Scrittement =   >   pas   >=
            Pourquoi compter les habitants, ce n'est pas ce qu'on demande.
            • Partager sur Facebook
            • Partager sur Twitter

            Le Tout est souvent plus grand que la somme de ses parties.

              27 février 2022 à 17:54:14

              Merci rouloude j'ai retiré le = sa ma validé l'exo 

              White ca me permet de mettre ma valeur a 0 et d'y ajouté 1 si ses vrai car sur la sortie on affiche le nombre de villes qui rentre dans la condition 

              Pierro bah si il ya 15 000 habitant je rentre dans la condition donc 15 000 - 15 000 = 0 + 1 

              et j'enregistre 1 

              -
              Edité par leprincefou 27 février 2022 à 17:55:58

              • Partager sur Facebook
              • Partager sur Twitter
              Notre mesure du possible rend possible l'impossible  
                27 février 2022 à 18:07:30

                Hello,

                Ligne 15, pourquoi ne pas écrire nbHabitant=compteur ? Mais de toute façon, cette ligne ne sert à rien.

                • Partager sur Facebook
                • Partager sur Twitter

                On écrit "j'ai tort", pas "tord" qui est le verbe "tordre" à la 3ème personne de l'indicatif présent

                  27 février 2022 à 18:12:10

                  hello edgar 

                  effectivement nbHabitant = compteur reviens au meme, ma logique des fois n'est très logique 

                  merci 

                  et pour la ligne 15 Comment ca elle sert a rien ? elle permet de stocker la valeur (si elle est vrai) et de l'incrémenter si au prochain tour de boucle la nouvelle entrée et vrai 

                  • Partager sur Facebook
                  • Partager sur Twitter
                  Notre mesure du possible rend possible l'impossible  
                    27 février 2022 à 18:16:53

                    Non, elle ne sert à rien !

                    Tu n'en fais rien de la variable habitant par la suite et quand tu reboucle ton scanf l'affecte d'une autre valeur qui écrase l'ancienne.

                    • Partager sur Facebook
                    • Partager sur Twitter
                    ...
                      27 février 2022 à 21:20:51

                      Pareil pour moi, la ligne 15 ne sert à rien.

                      leprincefou a écrit:

                      elle permet de stocker la valeur (si elle est vrai) et de l'incrémenter si au prochain tour de boucle la nouvelle entrée et vrai 

                      Non non. Elle met l'ancienne valeur du compteur (ancienne = pas encore incrémentée) dans la variable nbHabitant, laquelle est lue par 'scanf' au tour de boucle suivant, ce qui écrase l'ancienne valeur du compteur. Bref, ça sert à rien.

                      • Partager sur Facebook
                      • Partager sur Twitter
                        27 février 2022 à 22:41:55

                        Oui j'avais capté merci a vous
                        • Partager sur Facebook
                        • Partager sur Twitter
                        Notre mesure du possible rend possible l'impossible  
                          28 février 2022 à 2:15:48

                          @leprincefou:
                          Est-ce quelque chose du genre que tu voulais faire?
                          On ajoute 1 si la condition après le += est vraie, sinon on ajoute 0.
                          -
                          #include <stdio.h>
                          int main(void) {
                              int nbLieux;
                              scanf("%d", &nbLieux);
                              int compteur = 0;
                              while(nbLieux--) {
                                  int nbHabitants;
                                  scanf("%d", &nbHabitants);
                                  compteur += nbHabitants > 10000;
                              }
                              printf("%d\n", compteur);
                          }
                          • Partager sur Facebook
                          • Partager sur Twitter

                          Le Tout est souvent plus grand que la somme de ses parties.

                            28 février 2022 à 15:00:48

                            Avec ton code ca fonctionne aucun if ses propre comparé au miens, mais je me demande quelque choses tu fait 

                             compteur += nbHabitants > 10000;

                            Qui reviens au même que 

                            compteur = compteur + nbHabitants > 10000;

                            mais la les Test sur le site échoue, pourtant les 2 formules veulent dire la meme choses non ?

                            -
                            Edité par leprincefou 28 février 2022 à 16:24:11

                            • Partager sur Facebook
                            • Partager sur Twitter
                            Notre mesure du possible rend possible l'impossible  
                              28 février 2022 à 15:21:05

                              il manque le point-virgule à la fin de la ligne, si ce n'est pas une erreur de copier/coller et nbHabitants n'est pas nbHabitant (il y a un s à la fin d'un des 2 et pas de l' autre)

                              -
                              Edité par umfred 28 février 2022 à 15:21:18

                              • Partager sur Facebook
                              • Partager sur Twitter
                                28 février 2022 à 15:21:30

                                C'est une question de priorité des opérateurs, le + se fait avant le >
                                Mets la comparaison entre parenthèses.
                                • Partager sur Facebook
                                • Partager sur Twitter

                                Le Tout est souvent plus grand que la somme de ses parties.

                                  28 février 2022 à 15:27:35

                                  leprincefou a écrit:

                                  mais la les Test sur le site échoue, pourtant les 2 formules veulent dire la meme choses non ?

                                  Tu es bien sur ? Je viens de passer le code et tout les tests passent !

                                  • Partager sur Facebook
                                  • Partager sur Twitter
                                  ...
                                    28 février 2022 à 16:25:15

                                    Effectivement le soucis venait de la priorité merci a vous 

                                    Re j'en profite ici pour évité de pollué avec mes question 

                                    Pourquoi sur ce code la valeur sortie en second c'est a dire 9 ne sort t'elle pas en negative ? j'ai regardé pourtant a aucun moment l'algo fait sommeNeg = -sommeNeg qui sert justement a transformé une valeur negative en positif mais sur la sortie sans meme avoir préciser sa, le résultat et positif 

                                    Pourtant -6 (-) -3 = -9 

                                    Voici l'exo 

                                    http://www.france-ioi.org/algo/task.php?idChapter=647&iOrder=4

                                    Voici le code qui fonctionne parfaitement (c'est celui de la soluce donc forcement)

                                    int main()
                                    {
                                       int nbVariations, sommePos = 0, sommeNeg = 0;
                                       int variation;
                                      
                                       scanf("%d", &nbVariations);
                                       repeat(nbVariations)
                                       {
                                          scanf("%d", &variation);
                                          if(variation > 0)
                                          {
                                             sommePos = sommePos + variation;
                                          }
                                          else
                                          {
                                             sommeNeg = sommeNeg - variation; // ici on stock bien -9 ?
                                          }
                                       }
                                       printf("%d\n", sommePos);
                                       printf("%d\n", sommeNeg); // donc normalement ses -9 qui sort ici 
                                    }

                                    Pourriez vous m'éclairer 

                                    -
                                    Edité par leprincefou 28 février 2022 à 17:20:25

                                    • Partager sur Facebook
                                    • Partager sur Twitter
                                    Notre mesure du possible rend possible l'impossible  
                                      28 février 2022 à 17:43:47

                                      leprincefou a écrit:

                                      Pourtant -6 (-) -3 = -9 

                                      Heuuuu, chez moi -6 - -3, ça donne -3....



                                      • Partager sur Facebook
                                      • Partager sur Twitter

                                      On écrit "j'ai tort", pas "tord" qui est le verbe "tordre" à la 3ème personne de l'indicatif présent

                                        28 février 2022 à 17:52:52

                                        -6 - (-3) = -6 + 3, non?

                                        -
                                        Edité par PierrotLeFou 28 février 2022 à 17:56:02

                                        • Partager sur Facebook
                                        • Partager sur Twitter

                                        Le Tout est souvent plus grand que la somme de ses parties.

                                          28 février 2022 à 17:58:03

                                          si le nombre est négatif, tu fais sommeNeg=sommeNeg - variation; variation étant le nombre entrée, donc quand tu rentres -6, sommeNeg=0- -(6)= +6; et quand ensuite tu rentres -3, sommeNeg=6- (-3)=9 CQFD; sommeNeg n'est ainsi jamais négative non plus.
                                          • Partager sur Facebook
                                          • Partager sur Twitter

                                          Erreur test valeur affiché non voulu

                                          × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
                                          × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
                                          • Editeur
                                          • Markdown