Partage
  • Partager sur Facebook
  • Partager sur Twitter

Portée d'une variable

    26 février 2022 à 18:12:35

    Bonjour j'était bloqué sur un éxo de france ioi celui ci 

    Votre programme doit d'abord lire le nombre de Karvas en compétition. Ensuite, pour chaque Karva, il doit :

    • lire 4 entiers : son poids, son âge, la longueur de ses cornes et la hauteur au garrot ;
    • afficher sa note, sachant qu'elle s'obtient en multipliant la longueur des cornes par la hauteur au garrot, valeur à laquelle on ajoute le poids.

    Exemple

    entrée :

    2
    100
    5
    25
    90
    300
    10
    15
    120

    sortie :

    2350
    2100
    Voici le code que j'ai produit 
    #include <stdio.h>
    #define repeat(nb) for (int _loop = 1, _max = (nb); _loop <= _max; _loop++)
     
     
    int main()
    {
      int karvas;
      int poid;
      int age;
      int lCorne;
      int hGarrot;
      int result;
    
      scanf("%d", &karvas);
      
      repeat(karvas)
        {
          scanf("%d", &poid);
          scanf("%d", &age);
          scanf("%d", &lCorne);
          scanf("%d", &hGarrot);
          
          result  = lCorne * hGarrot + poid;
          printf("%d\n", result);
          }
     
    }
    Voici la solution proposé par le site 
    #include <stdio.h>
    #define repeat(nb) for(int _loop = 1, _max = (nb); _loop <= _max; _loop++)
    
    int main()
    {
       int nbKarvas;
       scanf("%d", &nbKarvas);
    
       repeat (nbKarvas)
       {
          int poids, age, longueurCornes, hauteurAuGarrot;
          scanf("%d %d %d %d", &poids, &age, &longueurCornes, &hauteurAuGarrot);
          printf("%d\n", longueurCornes * hauteurAuGarrot + poids);
       }
    }
    Sauf que le résultat imprime la valeur du premier calcul, ensuite le deuxième calcul alors que dans l'exemple la sortie imprime les 2 résultat d'un coup avec un retour a la ligne (désolé si je suis pas clair mais en testant mon code ainsi que celui du site vous comprendrait mieux) pourtant leur code fait la même choses que moi et pas le résultat donné dans l'exemple 
    Donc j'aimerais pouvoir avoir la même sortie que l'exemple et je n'y arrive pas car y ne sauvegarde que les nouvelles entrée en écrasant ma précédente variable (2350) 

    -
    Edité par leprincefou 26 février 2022 à 18:15:40

    • Partager sur Facebook
    • Partager sur Twitter
    Notre mesure du possible rend possible l'impossible  
      26 février 2022 à 18:39:04

      Je n'ai pas compris ?

      Les deux code donnent le même résultat !

      • Partager sur Facebook
      • Partager sur Twitter
      ...
        26 février 2022 à 18:46:59

        Désoler c'est pas clair 

        Alors voici la sortie de l'exemple 

         sortie :

        2350
        2100
        Alors que dans mon programme ainsi que celui du site la sortie est affiché ainsi 
        /main
        2
        100
        5
        25
        90
        2350 // le résultat 1 est d'abord affiché 
        300
        10
        15
        120
        2100 // le résulat 2 est ensuite affichée 

        Mais on voie bien que c'est dans la continuité du calcul alors que j'aimerais imprimée les 2 résultat de la même manières que dans l'exemple plus haut 

        -
        Edité par leprincefou 26 février 2022 à 18:47:34

        • Partager sur Facebook
        • Partager sur Twitter
        Notre mesure du possible rend possible l'impossible  
          26 février 2022 à 19:06:08

          Ok, je comprends.

          Tu es sous linux ? Car sous Windows ça affiche bien comme tu le souhaitais.

          Il faut donc faire un :

          fflush(stdout);
          après chaque printf il me semble.
          • Partager sur Facebook
          • Partager sur Twitter
          ...
            26 février 2022 à 19:49:20

            Je sous Mac os sa veut dire que je suis sous linux ?
            • Partager sur Facebook
            • Partager sur Twitter
            Notre mesure du possible rend possible l'impossible  
              26 février 2022 à 19:59:17

              leprincefou a écrit:

              Alors voici la sortie de l'exemple 

               sortie :

              2350
              2100

               ..

              Ce que tu appelles l'exemple, c'est la solution proposée par le site ?

              Et ça n'affiche que les deux résultats, pas les 2, 100, 5, 25, etc. ?

              -
              Edité par robun 26 février 2022 à 20:00:11

              • Partager sur Facebook
              • Partager sur Twitter
                26 février 2022 à 20:12:49

                robun a écrit:

                Et ça n'affiche que les deux résultats, pas les 2, 100, 5, 25, etc. ?

                Mais bien sur ! Ou avais-je la tête !

                EDIT : Ça affiche les saisies qui sont faite au clavier, sur le site elles sont injectées par fichier, on ne les voit donc pas !

                -
                Edité par rouIoude 26 février 2022 à 20:15:29

                • Partager sur Facebook
                • Partager sur Twitter
                ...
                  26 février 2022 à 20:18:26

                  Robun oui c'est sa 

                  et pour la deuxiéme question si sa affiche bien 2 , 100 , 5 , 25 etc mais les 2 résultat sont affichée une fois la boucle finit on le voie bien dans l'exemple mais selon rouloude sa viens de mon Os 

                  EDIT : Ah merci rouloude donc on les voie pas dans l'exemple 

                  -
                  Edité par leprincefou 26 février 2022 à 20:20:05

                  • Partager sur Facebook
                  • Partager sur Twitter
                  Notre mesure du possible rend possible l'impossible  
                    26 février 2022 à 20:19:58

                    leprincefou a écrit:

                    mais selon rouloude sa viens de mon Os 

                    Non en fait, j'avais la tête en l'air. Tu n'as pas du voir mon dernier message ?

                    • Partager sur Facebook
                    • Partager sur Twitter
                    ...
                      26 février 2022 à 20:20:52

                      Si c'est bon lol merci
                      • Partager sur Facebook
                      • Partager sur Twitter
                      Notre mesure du possible rend possible l'impossible  

                      Portée d'une variable

                      × 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