问题描述:给定一个日期,输出这个日期是该年的第几天。
问题分析:难点在于容易忽略闰年问题
程序说明:定义两个数组,判断是否为闰年,利用循环进行统计,日期输入格式用scanf("%d/%d/%d,&a,&b,&c)
#include<iostream>
#include<stdio.h>
using namespace std;
int main()
{
int a, b, c, ss[12] = { 31, 29,31,30,31,30,31,31,30,31,30,31 }, sss[12] = { 31,28,31,30,31,30,31,31,30,31,30,31 };
while (scanf_s("%d/%d/%d", &a, &b, &c) != EOF)
{
int sum0 = 0, sum1 = 0;
for (int d = 0; d < b - 1; d++)
{
if (a % 4 == 0 && a % 400 == 0) //判断闰年条件1、非整百年数除以4,无余为闰,有余为
//平;2、整百年数除以400,无余为闰有余平。
sum0 += ss[d];
else
sum0 += sss[d];
}
sum1 = sum0 + c;
cout << sum1 << endl;
}
return 0;
}
问题链接:https://vjudge.net/contest/274223#problem/J