Partage
  • Partager sur Facebook
  • Partager sur Twitter

concours de tire a la corde france ioi

Sujet résolu
    26 novembre 2020 à 11:57:06

    Bonjour je suis bloquer a cette étape  ma boucle repeat ne pas pris en compte pour mes calculs (je ne doit pas utiliser de boucle for pour l'instant).

    Ce que doit faire votre programme :

    Votre programme devra lire un premier entier : le nombre de membres <var style="hyphens: none;">nbMembres</var> qui constituent une équipe. Ensuite, il devra lire les poids (en kilogrammes), au total <var style="hyphens: none;">nbMembres</var> × 2, sachant que le premier poids est celui d'un joueur de la 1re équipe, le deuxième poids celui d'un joueur de la 2e équipe, le troisième la 1re équipe, le quatrième la 2e équipe, etc.

    Après avoir calculé le poids total de chaque équipe, vous devrez afficher le texte « L'équipe <var style="hyphens: none;">X</var> a un avantage » (en remplaçant <var style="hyphens: none;">X</var> par la valeur 1 ou 2), en considérant qu'une équipe est avantagée si elle a un poids total supérieur à celui de l'autre.

    Vous afficherez ensuite le texte « Poids total pour l'équipe 1 : » suivi du poids de l'équipe 1, puis « Poids total pour l'équipe 2 : » suivi du poids de l'équipe 2 (voir l'exemple ci-dessous).

    On vous garantit que les deux équipes n'auront pas le même poids total.

    Exemple

    entrée :

    3
    40
    80
    50
    50
    60
    10

    sortie :

    L'équipe 1 a un avantage
    Poids total pour l'équipe 1 : 150
    Poids total pour l'équipe 2 : 140

    Commentaires

    Chaque équipe est composée de trois joueurs. Ceux de la première pèsent 40, 50 et 60 kg, tandis que ceux de la seconde font 80, 50 et 10 kg. Cela fait 150 kg opposés à 140 kg.

    #include <stdio.h>
    
    
    int  Nbmenres1,Nbmenres2;
    
    
    
    int poids1;
    int poids2;
    
    int total1=0;
    int total2=0;
    
    
    int main()
    
    {
       scanf("%d %d", &Nbmenres1,&Nbmenres2);
      
       scanf("%d %d", &poids1,&poids2);
       
       repeat(Nbmenres1)
       {
    
        total1=total1+poids1;
    
        }
        
        repeat(Nbmenres2)
       {
    
        total1=total2+poids2;
    
        }
       
    
       if(total1>total2)
       {
        printf(" L'équipe 1 a un avantage\n");
    
    
         }
        if(total1<total2)
        {
    
         printf("L'équipe 1 a un avantage\n");
         printf("Poids total pour  pour l'équipe 1 : 150\n");
         printf("Poids total pour  pour l'équipe 2 : 140\n");
    }
    
    }



    -
    Edité par doub01 26 novembre 2020 à 12:03:24

    • Partager sur Facebook
    • Partager sur Twitter
      26 novembre 2020 à 13:13:03

      Bonjour ! Ligne 32, ce n'est pas 'total2' à gauche ?

      Surtout, lignes 47 et 48, il faut afficher 'total1' et 'total2', pas 150 et 140 !

      -
      Edité par robun 26 novembre 2020 à 13:13:19

      • Partager sur Facebook
      • Partager sur Twitter
        26 novembre 2020 à 14:28:22

        bonjour merci de votre réponse 

        printf("Poids total pour  l'équipe 1 : total1");

          printf("Poids total pour  l'équipe 2 : total2");

        j'ai un message d'erreur ?

        • Partager sur Facebook
        • Partager sur Twitter
          26 novembre 2020 à 15:56:29

          Houlà, non ! J'ai l'habitude de mettre entre quotes les noms de variables (comme on le trouve assez couramment dans les documentations) et je crois que ça t'a induit en erreur. Ce que je disais, c'est de ne pas afficher la valeur fixe 150, mais le contenu de la variable qui se nomme total1 (là je le mets en italique). J'espère que tu comprends pourquoi il ne faut pas afficher la valeur fixe 150 mais celle d'une variable ? (Et pareil pour le 14 bien sûr.)

          -
          Edité par robun 26 novembre 2020 à 15:57:09

          • Partager sur Facebook
          • Partager sur Twitter
            26 novembre 2020 à 16:41:58

            ce que doit faire votre programme :

            On vous donne le nombre d'habitants d'un certain nombre de lieux que vous visitez. Une ville étant un lieu dont la population est strictement supérieure à 10 000 habitants, déterminez combien de lieux sont des villes.

            Votre programme doit lire un entier : le nombre de lieux. Il doit ensuite lire, pour chaque lieu, un entier donnant le nombre de gens qui y habitent. Votre programme doit alors afficher le nombre de villes.

            Exemple

            entrée :

            6
            1000
            5000
            15000
            4780
            0
            23590

            sortie :

            2
            #include <stdio.h>
            #define repeat(nb) for (int _loop = 1, _max = (nb); _loop <= _max; _loop++)
            
            
            
            
            int lieux;
            int habhitant;
            int ville;
            
            
            int main()
            {
            scanf("%d", &lieux,&habhitant,&ville);
            
            if (ville >10000)
            {
                  for (int lieux= 1; lieux<= ville; ville= ville+ 1)
               {
                  printf("%d\n", ville);
               }
            }
            else
            {
               printf("%d\n",ville);
            }
            }
            • Partager sur Facebook
            • Partager sur Twitter
              26 novembre 2020 à 18:35:39

              C'est un problème différent, Tu aurais dû poster un nouveau sujet.
              Tu lis 3 variables avec un seul spécificateur %d
              Je suggère de faire 3 scanf() différents.
              Tu lis le nombre de lieux dans un premier temps.
              Tu lis les lieux à la suite dans la boucle.
              Le repeat() se fera avec la variable donnant le nombre de lieux.
              Au fait, pourquoi lire un nombre de villes? Tu dois justement calculer cette valeur.
              De toute façon, tu dois lire les lieux et cumuler le nombre de villes dans ta boucle, pas avant.
              Et mets tes variables dans le main, pas à l'extérieur.
              • Partager sur Facebook
              • Partager sur Twitter

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

                26 novembre 2020 à 19:20:49

                doub01 a écrit:

                3
                40
                80
                50
                50
                60
                10


                L'équipe 1 est gagnante d'office: 10 kgs, ça correspond à un enfant de plus ou moins un an :)

                -
                Edité par edgarjacobs 26 novembre 2020 à 19:22:28

                • 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

                  26 novembre 2020 à 19:29:12

                  Ça prouve que le partage est bien fait. :)
                  • Partager sur Facebook
                  • Partager sur Twitter

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

                    26 novembre 2020 à 19:40:59

                    bonsoir j'ai pas compris la logique 

                    #include <stdio.h>
                    #define repeat(nb) for (int _loop = 1, _max = (nb); _loop <= _max; _loop++)
                    
                    
                    
                    
                    
                    int main()
                    {
                       
                       
                    int lieux;
                    int habhitant;
                    int ville;
                    
                       scanf("%d", &lieux);
                       
                    
                    
                    if (lieux>10000)
                    {
                          for (int lieux= 1; lieux<= habhitant; lieux= lieux+ 1)
                       {   
                          scanf("%d", &lieux, &habhitant );
                          scanf("%d", &ville );
                     
                       
                          printf("%d\n", lieux);
                       }
                    }
                    else
                    {   
                       printf("%d\n",ville);
                    }
                    }



                    • Partager sur Facebook
                    • Partager sur Twitter
                      27 novembre 2020 à 1:49:43

                      Ce que ton programme doit faire (pour citer France IOI ...)
                      + lire le nombre d'endroits à visitées.
                      + mettre à 0 le nombre de villes à compter
                      + dans une boucle répétée autant de fois que d'endroits.
                      + lire le nombre d'habitants
                      + comparer avec 10000
                      + si plus grand, augmenter le nombre de villes
                      + fin de la boucle
                      + imprimer le résultat.
                      • Partager sur Facebook
                      • Partager sur Twitter

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

                        27 novembre 2020 à 4:48:16

                        #include <stdio.h>
                        
                        #define repeat(nb) for (int _loop = 1, _max = (nb); _loop <= _max; _loop++)
                        
                        int main(void)
                        {
                          int lieux;
                          int villes = 0;
                        
                          scanf("%d", &lieux);
                        
                          repeat(lieux)
                          {
                            int population;
                        
                            scanf("%d", &population);
                        
                            if(population > 10000)
                            {
                              // Il te reste une ligne a mettre ici
                            }
                          }
                          printf("%d\n", villes);
                        }



                        • Partager sur Facebook
                        • Partager sur Twitter

                        concours de tire a la corde france ioi

                        × 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