Problem Description
给定一个日期,输出这个日期是该年的第几天。
Input
输入数据有多组,每组占一行,数据格式为YYYY/MM/DD组成,具体参见sample input ,另外,可以向你确保所有的输入数据是合法的。
Output
对于每组输入数据,输出一行,表示该日期是该年的第几天。
Sample Input
1985/1/20
2006/3/12
Sample Output
20
71
问题链接:添加链接描述
问题简述:
输入年月日中间用“/”分隔开,然后输出这是这一年的第几天。
问题分析:
创建一个整形字符串把每个月的天数输进去,通过整形跟字符型读取不一样,可以直接把年月日读取出来。
然后根据年份不同分为闰年的二月增加一天。
而且每次都要把总天数跟2月的天数初始化。(考试时没想到可以根据读取的整形跟字符型不同读进去,然后就想了一个一个读入)
程序说明:
用while实现不断输入数据。创建3个整形,两个字符型,用if else 分开闰年,再用循环读入这个月以前的月的天数加上这个月天数输入。
AC通过的C语言程序如下:
#include<iostream>
#include <cstring>
using namespace std;
int main()
{
int a, b, c,m=0; char d, e;
int w[12] = { 31,28,31,30,31,30,31,31,30,31,30,31 };
while (cin >> a >> d >> b >> e >> c)
{
m = 0;
w[1]=28;
if (a % 4 == 0 && a % 100 != 0 || a % 400 == 0)
{
w[1] = 29;
for (int q = 0; q < b - 1; q++)
m += w[q];
m += c;
cout << m << endl;
}
else
{
for (int q = 0; q < b - 1; q++)
m += w[q];
m += c;
cout << m << endl;
}
}
return 0;
}