第几天?
Time Limit : 2000/1000ms (Java/Other) Memory Limit : 65536/32768K (Java/Other)
Total Submission(s) : 150 Accepted Submission(s) : 60
Problem Description
给定一个日期,输出这个日期是该年的第几天。
Input
输入数据有多组,每组占一行,数据格式为YYYY/MM/DD组成,具体参见sample input ,另外,可以向你确保所有的输入数据是合法的。
Output
对于每组输入数据,输出一行,表示该日期是该年的第几天。
Sample Input
1985/1/20 2006/3/12
Sample Output
20 71注意:因为输入的是1985/1/20这种形式,所以我们有两种输入方式 要么字符串输入然后再转化为普通数字,要么直接:scanf("%d/%d/%d",&year,&month,&day);我的代码:#include<stdio.h> #include<string.h> int isRuiNian(int year) { if((year%400==0)||(year%4==0&&year%100!=0)) return 1; return 0; } int main() { int y[100]; char str[100]; while(gets(str)!=NULL) { int i,j,sum=0,temp=0,len; len=strlen(str); for(i=0,j=0;i<len;i++) { if(str[i]=='/') { y[j++]=temp; temp=0; } else temp=temp*10+str[i]-'0'; } y[2]=temp; for(i=1;i<y[1];i++) { if(i==1||i==3||i==5||i==7||i==8||i==10||i==12) sum+=31; else { if(i==2) { if(isRuiNian(y[0])) sum+=29; else sum+=28; } else sum+=30; } } sum+=y[2]; printf("%d\n",sum); } return 0; }