【C语言】之''计算天数''

老师平时布置的希冀系统上的作业答案,仅供参考!

【问题描述】

定义一个结构体变量用以记录一个日期(包括年,月,日)。输入一个日期,计算该日是本年的第几天。

【输入形式】

输入日期(包括年 月 日),是三个整数,以空格分隔。

【输出形式】

输出该日是本年的第多少天。

【样例输入】

2003 3 25

【样例输出】

84

【样例说明】

输入一个日期,输出该日是本年的第几天。

【参考答案】

#include <stdio.h>
const int s[2][13] = {{0,31,28,31,30,31,30,31,31,30,31,30,31},{0,31,29,31,30,31,30,31,31,30,31,30,31}};
struct Date
{
int year;
int month;
int day;
}a,b;
int count(const struct Date *p) //计算这年过了多少天
{
int i,t = 0;
if(p->year%100 != 0 && p->year%4 == 0 || p->year%400 == 0)
for(i = 1;i < p->month;i++)t += s[1][i];
elsefor(i = 1;i < p->month;i++)t += s[0][i];
return t + p->day;
}
int main()
{
int ans = 0,i;
scanf("%d %d %d",&a.year,&a.month,&a.day);
scanf("%d %d %d",&b.year,&b.month,&b.day);
for(i = a.year;i < b.year;i++)
{
if(i%100 != 0 && i%4 == 0 || i%400 == 0)ans += 366;
elseans += 365;
}
ans += count(&b) - count(&a);
printf("%d",-ans);
return 0;
}
© 版权声明
THE END
喜欢就支持一下吧
点赞0 分享
评论 抢沙发

请登录后发表评论

    暂无评论内容