char* getAstrologicalSign(int day, int month)
{
// astrological signs
static char* signs[12] = {"Capricorn","Aquarius","Pisces","Aries",
"Taurus","Gemini","Cancer","Leo",
"Virgo","Libra","Scorpio","Sagittarius"};
// transition day in the month
static int dayTransition[12] = {20,18,20,19,20,21,22,22,22,23,22,21};
// compute the index of the astrological sign
// be careful: do not be confused between array index and month index
int index = day <= dayTransition[month-1] ? (month-1)%12 : month%12;
return signs[index];
}
Voici l'appel à la fonction:
printf("%s",getAstrologicalSign(13,10)); // résultat: Libra (pour le 13 octobre)
Modifié par cptpingu le 30/07/2013 à 12:26
- 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 "//"
Vous n'êtes pas encore membre ?
inscrivez-vous, c'est gratuit et ça prend moins d'une minute !
Les membres obtiennent plus de réponses que les utilisateurs anonymes.
Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.
Le fait d'être membre vous permet d'avoir des options supplémentaires.