Partage
  • Partager sur Facebook
  • Partager sur Twitter

Obtenir le jour de la semaine

Sujet résolu
    22 septembre 2018 à 18:33:33

    Bonjour,

    On vient de me poser un sujet d'un programme en C à réalisé en mode console et qui je n'ai pas la moindre idée de comment m'y prendre. Mon sujet est le suivant: On vous demande de créer un programme capable de donner le nom du jour (lundi...dimanche)à partir de son numéro dans l’année 2015. Par exemple, « 36 » ( 36ème jour de l’année) doit retourner « jeudi » et « 81 » doit retourner « dimanche ». Si le numéro est inférieur à 1 ou supérieur à 365, une erreur doit être générée.

    Ci vous pouvez me guider pour me dire comment m'y prendre, une structure, je suis preneur car je pêche ^^

    Merci bien

    • Partager sur Facebook
    • Partager sur Twitter
      22 septembre 2018 à 18:59:13

      Bonjour, sachant que le 1 janvier 2015 est un jeudi si on te demande le 36ieme jour tu peux retrouver le jour correspondant, par exemple, en faisant des ajouts de 7 successif jusqu'à arriver ou dépasser le jour voulut, puis voir la différence pour déduire le jour.

      • Partager sur Facebook
      • Partager sur Twitter
        22 septembre 2018 à 23:49:46

        Hello,

        L'opérateur modulo est ton copain.

        Puisque le 01.01.2015 est un jeudi (jour n°1), grace au modulo tu peux savoir que le 36ème jour est un jour n°1 également. De la même manière, le 81ème jour est un jour n°4 (soit un dimanche) et le 111ème jour est un jour n°6 (soit un mardi).

        -
        Edité par edgarjacobs 22 septembre 2018 à 23:50: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

          23 septembre 2018 à 21:58:08

          Ok super je vais essayer ça merci à vous deux.
          • Partager sur Facebook
          • Partager sur Twitter
            24 septembre 2018 à 14:12:45

            un petit code :
            unsigned int day = 0;
            char *day[] = {
                "jeudi",
                "vendredi",
                "samedi",
                "dit : manche",
                "lundi",
                "mardi",
                "mercredi"
            ];
            
            printf ( "set day : " );
            scanf ( "%d", &day );
            
            
            printf ( "%s\n", day[ day % 7 ] );
            un truc comme ça fera l'affaire
            • Partager sur Facebook
            • Partager sur Twitter

            la connaissance est une chose qui ne nous appauvrit pas quand on la partage.

            Mon GitHub

              24 septembre 2018 à 18:51:36

              C'est bon j'ai réussi à faire mon exercice. Je pose le code ici en cas.

              #include <stdio.h>
              
              int main(int argc, const char * argv[]) {
                  //Declaration de variable
                  int nbJour = 0;
              
                  //Saisi jour
                  printf("Veuillez saisir le numero d'un jour: ");
                  scanf("%d",&nbJour);
              
                  //On regarde si c'est < a 1 ou > a 365
                  if (nbJour < 1 || nbJour > 365) {
                      printf("Veuillez saisir un jour entre 1 et 365");
                  } else {
                      //On fait le modulo pour trouver le jour
                      switch (nbJour % 7) {
                          case 0:
                              printf("C'est un mercredi");
                              break;
                          case 1:
                              printf("C'est un jeudi");
                              break;
                          case 2:
                              printf("C'est un vendredi");
                              break;
                          case 3:
                              printf("C'est un samedi");
                              break;
                          case 4:
                              printf("C'est un dimanche");
                              break;
                          case 5:
                              printf("C'est un lundi");
                              break;
                          case 6:
                              printf("C'est un mardi");
                              break;
              
                          default:
                              printf("Mauvaise entree");
                              break;
                      }
                  }
              
                  return 0;
              }



              • Partager sur Facebook
              • Partager sur Twitter
                24 septembre 2018 à 19:00:11

                Hello,

                C'est super d'avoir mis un default pour le switch (j'en mets un dans tous mes switch), mais dans le cas présent, le break suffit, pas besoin d'affichage: le default n'arrivera jamais.

                -
                Edité par edgarjacobs 24 septembre 2018 à 19:00:37

                • 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

                Obtenir le jour de la semaine

                × 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