c语言用函数输入一个年龄判断是否属羊?

如题所述

调用 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;
}
温馨提示:答案为网友推荐,仅供参考
相似回答