输入某天的日期,计算该天在给定年份中是第几天。
要求:
(1)定义包含年,月,日信息的结构体类型。
(2)利用scanf函数输入年,月,日的值。
(3)输出日期以及该日期是给定年份中的第几天。
(4)需要对闰年做判定。
源程序:
#include <stdio.h>
struct
{
int year;
int month;
int day;
}date;
int main()
{
int days;//day是代表该天在给定年份中是第几天
printf("请输入需要查询的某天的年份\n");
scanf_s("%d",&date.year);
printf("请输入需要查询的某天的月份\n");
scanf_s("%d", &date.month);
printf("请输入需要查询的某天的号数\n");
scanf_s("%d", &date.day);
days = 0;
int i;
int year1[12] = { 31,28,31,30,31,30,31,31,30,31,30,31 };
int year2[12] = { 31,29,31,30,31,30,31,31,30,31,30,31 };
if ((date.year % 4 == 0 && date.year % 100 != 0)||(date.year % 400 == 0))
{
for (i = 0; i < date.month - 1; i++)//date.month - 1是为了获得输入日期所处的月份之前的每个月的天数之和
{
days += year2[i];
}
}
else
{
for (i = 0; i < date.month - 1; i++)
{
days += year1[i];
}
}
days += date.day;
printf("%d年%d月%d日是那一年的第%d天", date.year, date.month, date.day,days);
return 0;
}
实验结果: