题目描述
本题要求编写程序计算某年某月某日是该年中的第几天。
输入格式
输入在一行中按照格式“yyyy/mm/dd”(即“年/月/日”)给出日期。注意:闰年的判别条件是该年年份能被4整除但不能被100整除、或者能被400整除。闰年的2月有29天。
输出格式
在一行输出日期是该年中的第几天。
输入样例1:2009/03/02
输出样例1:61
输入样例2:2000/03/02
输出样例2:62
源代码
以下是一个可以计算给定日期是该年中的第几天的 C 语言代码示例:
#include <stdio.h>
int isLeapYear(int year) {
if ((year % 4 == 0 && year % 100 != 0) || year % 400 == 0) {
return 1;
} else {
return 0;
}
}
int dayOfYear(int year, int month, int day) {
int daysInMonth[] = {0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};
if (isLeapYear(year)) {
daysInMonth[2] = 29;
}
int totalDays = 0;
for (int i = 1; i < month; i++) {
totalDays += daysInMonth[i];
}
totalDays += day;
return totalDays;
}
int main() {
int year, month, day;
scanf("%d/%d/%d", &year, &month, &day);
int result = dayOfYear(year, month, day);
printf("%d\n", result);
return 0;
}
在上面的代码中,我们定义了两个函数。isLeapYear
函数用于判断给定年份是否是闰年,根据闰年的条件返回 1 或 0。dayOfYear
函数接受年、月、日作为输入,并根据是否是闰年以及每个月的天数计算给定日期是该年中的第几天。
然后,在主程序中,我们使用scanf
函数从输入中读取年、月、日,并调用dayOfYear
函数计算结果。最后,我们使用printf
函数将结果输出到控制台。
您可以运行上述代码,在提示处输入日期,然后代码将会输出给定日期是该年中的第几天。例如,输入日期为2009/03/02
,可能会得到以下输出:
© 版权声明
本站资源来自互联网收集,仅供用于学习和交流,请勿用于商业用途。如有侵权、不妥之处,请联系站长并出示版权证明以便删除。敬请谅解!
THE END