Advertisement
alsagone

Numero_Pokemon

Dec 31st, 2017
199
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 1.94 KB | None | 0 0
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <string.h>
  4.  
  5. #define TRUE (1==1)
  6. #define FALSE (1==0)
  7.  
  8. int nombre_jours_mois (int mois)    //Retourne le nombre de jours dans le mois, sans cas des années bissextiles pour février
  9. {
  10.     int n ;
  11.     switch (mois)
  12.     {
  13.         case 1 :    n = 31 ; break ;
  14.         case 2 :    n = 29 ; break ;
  15.         case 3 :    n = 31 ; break ;
  16.         case 4 :    n = 30 ; break ;
  17.         case 5 :    n = 31 ; break ;
  18.         case 6 :    n = 30 ; break ;
  19.         case 7 :    n = 31 ; break ;
  20.         case 8 :    n = 31 ; break ;
  21.         case 9 :    n = 30 ; break ;
  22.         case 10 :   n = 31 ; break ;
  23.         case 11 :   n = 30 ; break ;
  24.         case 12 :   n = 31 ; break ;
  25.         default :   fprintf(stderr,"Le mois doit être compris entre 1 et 12.\n") ; exit(1) ;
  26.     }
  27.  
  28.     return n ;
  29. }
  30.  
  31. int date_correcte (int jour, int mois)  //Vérifie si la date entrée est correcte
  32. {
  33.     int b = TRUE ;
  34.     int jour_max ;
  35.  
  36.     if ((jour < 1) || (mois < 1) || (mois > 12))
  37.     {
  38.         b = FALSE ;
  39.     }
  40.  
  41.     else
  42.     {
  43.         jour_max = nombre_jours_mois(mois) ;
  44.  
  45.         if (jour > jour_max)
  46.         {
  47.             b = FALSE ;
  48.         }
  49.     }
  50.  
  51.     return b ;
  52. }
  53.  
  54. int numero_pokemon(int jour, int mois, char* prenom)
  55. {
  56.  
  57.     if (date_correcte(jour,mois) == FALSE)
  58.     {
  59.         fprintf(stderr, "Le %d/%d n'est pas une date correcte.\n",jour,mois);
  60.         exit(1) ;
  61.     }
  62.  
  63.     int nb_lettres_prenom = strlen(prenom) ;
  64.     int resultat = jour*mois*nb_lettres_prenom ;
  65.  
  66.     while (resultat > 649)
  67.     {
  68.         resultat/=2 ;
  69.     }
  70.  
  71.     return resultat ;
  72. }
  73.  
  74. int main(int argc, char** argv)
  75. {
  76.     int jour, mois, num ;
  77.     char prenom[256] ;
  78.  
  79.     if (argc != 4)
  80.     {
  81.         printf("Jour : ") ;
  82.         scanf("%d",&jour) ;
  83.  
  84.         printf("Mois : ") ;
  85.         scanf("%d",&mois) ;
  86.  
  87.         printf("Prénom : ") ;
  88.         scanf("%s",prenom) ;
  89.         printf("\n") ;
  90.     }
  91.  
  92.     else
  93.     {
  94.         jour = atoi(argv[1]) ;
  95.         mois = atoi(argv[2]) ;
  96.         strncpy(prenom, argv[3], 256) ;
  97.     }
  98.  
  99.     num = numero_pokemon(jour,mois,prenom) ;
  100.     printf("%d\n",num);
  101.  
  102.     printf("Votre Pokemon : ");
  103.     printf("https://www.pokemon.com/fr/recherche/#/results/%d/1/\n",num);
  104.  
  105.     return 0 ;
  106. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement