C语言怎么算生肖属相?用(年份-4)%12做下标即可。

🤔生肖从鼠开始,而鼠对应的地支“子”排在第1位(子、丑、寅…)。
公历1984年为甲子鼠年,1984-4=1980 & 1980÷12整除,于是1984的序号恰好落在0位,即数组首元素。
✅这种“偏置-4”技巧让计算一步到位,不用纠结1900是鼠还是猪。
#include <stdio.h>
int main(){
int year;
scanf("%d",&year);
char *shengxiao[12]={"鼠","牛","虎","兔","龙","蛇","马","羊","猴","鸡","狗","猪"};
int idx=(year-4)%12;
if(idx<0) idx+=12; /*兼容公元前年份*/
printf("🗓️ %d年 -> %s年\n",year,shengxiao[idx]);
return 0;
}
🔍自测小技巧:输入2024,运行结果会显示龙年,和你的手机日历对一下,瞬间踏实!✨
给极简党准备的“魔法小方糖”:
#define SX(y) (char*[]){"鼠","牛","虎","兔","龙","蛇","马","羊","猴","鸡","狗","猪"}[(y-4)%12]
这样你在任何printf里直接写 SX(2025) 就能输出🐍蛇,帅到炸裂!💥
严格天文意义上,生肖要等到新年子时“切换”🎇。
但90%的工程场景用公历年已足够,误差<24小时。要是做命理小程序,再去翻朔望表也不迟。

发表评论
暂时没有评论,来抢沙发吧~