十二支は12年周期
西暦を12で割った時に余りがないのが申(さる)
#include <stdio.h> #include <string.h> #include <stdlib.h> int main(){ char buf[128],eto[32]; int yy; printf("あなたは西暦何年生まれですか?"); fflush(stdin); gets(buf); yy=atoi(buf); switch(yy % 12){ case 0: strcpy(eto,"申(さる)");break; case 1: strcpy(eto,"酉(とり)");break; case 2: strcpy(eto,"戌(いぬ)");break; case 3: strcpy(eto,"亥(い)");break; case 4: strcpy(eto,"子(ね)");break; case 5: strcpy(eto,"丑(うし)");break; case 6: strcpy(eto,"寅(とら)");break; case 7: strcpy(eto,"卯(う)");break; case 8: strcpy(eto,"辰(たつ)");break; case 9: strcpy(eto,"巳(み)");break; case 10: strcpy(eto,"午(うま)");break; case 11: strcpy(eto,"未(ひつじ)");break; } printf("%s年生まれのあなたの十二支は%sです。",buf, eto); return 0; }
$ ./main
あなたは西暦何年生まれですか?1990
1990年生まれのあなたの十二支は午(うま)です。