使用c语言:输入一个日期(年/月/日),算出是该年的第几天。
时间: 2023-12-16 22:05:48 浏览: 210
C语言计算某日是该年的第几天
好的,以下是使用C语言实现该功能的代码:
```c
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int is_leap_year(int year) {
// 判断是否是闰年
return (year % 4 == 0 && year % 100 != 0) || (year % 400 == 0);
}
int day_of_year(char *date) {
int year, month, day;
sscanf(date, "%d/%d/%d", &year, &month, &day); // 将输入的日期字符串转为年月日三个整数
int days_in_month[] = {31, 28 + is_leap_year(year), 31, 30, 31, 30, 31, 31, 30, 31, 30, 31}; // 每个月的天数
int days = 0;
for (int i = 0; i < month - 1; i++) {
days += days_in_month[i];
}
days += day; // 计算该日期是该年的第几天
return days;
}
int main() {
char date[11];
printf("请输入日期(年/月/日):");
scanf("%s", date);
int days = day_of_year(date);
printf("该日期是该年的第%d天。\n", days);
return 0;
}
```
你可以在控制台中输入日期,例如:`2022/12/31`,程序将输出:`该日期是该年的第365天。`。
需要注意的是,这里使用了标准库函数`sscanf`来解析输入的日期字符串,因此需要包含头文件`<stdio.h>`和`<stdlib.h>`;另外,C语言中的字符串不能直接进行比较,因此在判断是否是闰年时,需要使用一个单独的函数来返回布尔值。
阅读全文