调用 CheckShengXiaoByAge 函数,参数1为年龄,参数2为需要判断的生肖,返回值:返回 0 表示年龄与生肖相符,否则不符。
GetCurrentYear 函数,用于获取当前年份
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <time.h>
typedef enum ShengXiao{
HOU,JI,GOU,ZHU,
SHU,NIU,HU,TU,
LONG,SHE,MA,YANG
}SX;
//获取当前年份
int GetCurrentYear(){
time_t tTime=0;//距离1900年1月1日的秒数
char str[64]={0};
struct tm* stTim=NULL;//时间结构
time(&tTime);
stTim = localtime(&tTime);
strftime(str,sizeof(str),"%Y",stTim);//格式化时间
return atoi(str);
}
int CheckShengXiaoByAge(unsigned int Age,const char* ShengXiaoName)
{
unsigned int BirthYear=GetCurrentYear()-Age;
char G_ShengXiaoList[12][4]={
[HOU]="猴",[JI]="鸡",[GOU]="狗",[ZHU]="猪",
[SHU]="鼠",[NIU]="牛",[HU]="虎",[TU]="兔",
[LONG]="龙",[SHE]="蛇",[MA]="马",[YANG]="羊"
};
return strcmp(G_ShengXiaoList[BirthYear%12],ShengXiaoName);
}
int main(void)
{
if(!CheckShengXiaoByAge(25,"牛"))
{
puts("Yes");
}
else
{
puts("No");
}
return 0;
}
温馨提示:答案为网友推荐,仅供参考