输入年月日 计算该日是该年的第几天?解决方案
输入年月日 计算该日是该年的第几天?
本人新手,不知道怎么写,大家给点思路啊!
------解决方案--------------------
首先判断改年是润年还是平年,然后定义一个长度为12的数组char month[12]={31,0,31,30,31,30,31,31,30,31,30,31};初始化每个月的天数,
2月初始化为0,更具平润年判断加上28或者29~~
然后再加上你输入的是几号,就可以得出是改年的第几天了~~
再不懂,找我,我给你写个~~
------解决方案--------------------
按这种格式输入:
1985/1/20
2006/3/12
本人新手,不知道怎么写,大家给点思路啊!
------解决方案--------------------
首先判断改年是润年还是平年,然后定义一个长度为12的数组char month[12]={31,0,31,30,31,30,31,31,30,31,30,31};初始化每个月的天数,
2月初始化为0,更具平润年判断加上28或者29~~
然后再加上你输入的是几号,就可以得出是改年的第几天了~~
再不懂,找我,我给你写个~~
------解决方案--------------------
按这种格式输入:
1985/1/20
2006/3/12
- C/C++ code
#include"stdio.h" int leap(int a) //判断闰年 { if((a%4==0&&a%100!=0)||(a%400==0)) return 1; else return 0; } int main() { int a,b,c,d; while(scanf("%d/%d/%d",&a,&b,&c)==3) { d=leap(a); switch(b) { case 1:printf("%d\n",c);break; case 2:printf("%d\n",c+31);break; case 3:printf("%d\n",(d==1?60+c:59+c));break; case 4:printf("%d\n",(d==1?91+c:90+c));break; case 5:printf("%d\n",(d==1?121+c:120+c));break; case 6:printf("%d\n",(d==1?152+c:151+c));break; case 7:printf("%d\n",(d==1?182+c:181+c));break; case 8:printf("%d\n",(d==1?213+c:212+c));break; case 9:printf("%d\n",(d==1?244+c:243+c));break; case 10:printf("%d\n",(d==1?274+c:273+c));break; case 11:printf("%d\n",(d==1?305+c:304+c));break; case 12:printf("%d\n",(d==1?335+c:334+c));break; } } return 0; }