作业帮 > 综合 > 作业

杭电2005 我错哪了?

来源:学生作业帮 编辑:大师作文网作业帮 分类:综合作业 时间:2024/11/07 03:41:07
杭电2005 我错哪了?
给定一个日期,输出这个日期是该年的第几天.
Input
输入数据有多组,每组占一行,数据格式为YYYY/MM/DD组成,具体参见sample input ,另外,可以向你确保所有的输入数据是合法的.
Output
对于每组输入数据,输出一行,表示该日期是该年的第几天.
Sample Input
1985/1/20
2006/3/12
Sample Output
20
71
Author
lcy
Source
C语言程序设计练习(一)
code:
#include
int main()
{
int a,b,c,m=0;
int i=0;
int year[4]={1,0,0,0};
int month[12]={31,28,31,30,31,30,31,31,30,31,30,31};
a=0;b=0;c=0;
printf("请输入年/月/日:\n");
scanf("%d/%d/%d",&a,&b,&c);
i=a%4;
if(a%400!=0&&a%100==0) i=1 ;
month[1]=year[i]+month[1];
for(i=0;i
杭电2005 我错哪了?
需要连续输入,m要初始化,输出后要换行
主要注意这三个吧
下面是我自己写的AC代码
#include
#include
int leap(int year)
{
if((year%4==0 && year%100!=0)||(year%400==0))
return 1;
return 0;
}
int main()
{
int y,m,d;
int a[13]={0,31,59,90,120,151,181,212,243,273,304,334,365};
while(scanf("%d%*c%d%*c%d",&y,&m,&d)!=EOF)
{
int flag=0;
flag=leap(y);
if(m>2)
printf("%d\n",a[m-1]+flag+d);
else
printf("%d\n",a[m-1]+d);
}
return 0;
}