题目:
输入年,月,日计算年龄,生肖和星座
解题思路:
获取用户输入:使用scanf
函数分别获取用户输入的年份、月份和天数。
- 计算年龄:获取当前时间,并将其转换为本地时间,然后提取年份,与用户的出生年份相减得到年龄。如果用户输入的月份在当前月份之前,年龄减1。
- 计算属相:使用一个字符串数组
zodiacs
存储属相信息,通过计算年份与4的余数,确定属相的索引位置,然后输出对应的属相。 - 计算星座:使用一个字符串数组
constellations
存储星座信息,通过判断月份,确定星座的索引位置,然后输出对应的星座。
程序源码:
#include <stdio.h>
void main(void)
{
int year, month, day;int index; int age; struct tm* ltm ;time_t now;
int t = 0;int now_year;
// 计算属相
char* zodiacs[] = { "鼠", "牛", "虎", "兔", "龙", "蛇", "马", "羊", "猴", "鸡", "狗", "猪" };
char* constellations[] = { "摩羯座", "水瓶座", "双鱼座","白羊座", "金