Connaître le signe astrologique

BunoCS
Messages postés
15266
Date d'inscription
lundi 11 juillet 2005
Statut
Modérateur
Dernière intervention
24 juin 2022
- 30 juil. 2013 à 12:23
BunoCS
Messages postés
15266
Date d'inscription
lundi 11 juillet 2005
Statut
Modérateur
Dernière intervention
24 juin 2022
- 30 juil. 2013 à 12:23
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/100033-connaitre-le-signe-astrologique

cptpingu
Messages postés
3834
Date d'inscription
dimanche 12 décembre 2004
Statut
Modérateur
Dernière intervention
20 octobre 2021
124
Modifié par cptpingu le 30/07/2013 à 12:26
Je propose quelques modifications mineures:
- Modulo pour éviter des dépassements de bornes (month > 12 == segfault)
- Ajout de constitude
- Ajout d'un \n dans le printf
- Attention les commentaires en C sont "/* */" et non "//"

#include <stdio.h>

const char* getAstrologicalSign(int day, int month)
{
  static const char* signs[12] = {"Capricorn", "Aquarius", "Pisces", "Aries",
      "Taurus", "Gemini", "Cancer", "Leo",
      "Virgo", "Libra", "Scorpio", "Sagittarius"};
  static const int dayTransition[12] = {20, 18, 20, 19, 20, 21, 22, 22, 22, 23, 22, 21};

  const int index = day <= dayTransition[(month % 12) - 1] ? (month - 1) % 12 : month % 12;
  return signs[index];
}

int main()
{
  printf("%s\n", getAstrologicalSign(13000, 201000));
  return 0;
}