c语言输入一个学生的出生年月日,计算出年龄
时间: 2024-12-17 11:36:43 浏览: 9
在C语言中,你可以使用`getchar()`函数从用户那里接收字符输入,然后结合`ctime`库来解析和计算日期。以下是一个简单的示例程序,假设当前日期已经设置好:
```c
#include <stdio.h>
#include <time.h>
int main() {
int year, month, day;
struct tm current_date; // 当前时间结构体
// 获取用户输入
printf("请输入学生出生年份(YYYY): ");
scanf("%d", &year);
printf("请输入月份(MM): ");
scanf("%d", &month);
printf("请输入日期/DD: ");
scanf("%d", &day);
// 设置当前日期
time_t raw_time = mktime(¤t_date); // 将tm结构转换为时间戳
current_date.tm_year = year - 1900; // 转换为自1900年以来的年数
current_date.tm_mon = month - 1; // 月份从0开始计数
current_date.tm_mday = day;
// 计算年龄
time_t birth_time = mktime(¤t_date);
time_t age_in_seconds = difftime(raw_time, birth_time);
int age_in_days = (age_in_seconds / (60 * 60 * 24));
printf("学生的年龄大约是%d天。\n", age_in_days);
return 0;
}
```
注意:这个程序只能给出大致的年龄,因为实际生日可能还未到来或者已经过去,而这里默认使用了“今天”。如果需要精确到年,可以再加一天。
阅读全文