问题及代码:
/*Copyright(c)2016,烟台大学计算机学院
all rights reserved.
作者:曹欣宇
完成日期:2016年10月31日
题目描述
给定一个日期,输出这个日期是该年的第几天。
输入
输入数据有多组,每组占一行,数据格式为YYYY-MM-DD组成,具体参见sample input ,另外,可以向你确保所有的输入数据是合法的。
输出
对于每组输入数据,输出一行,表示该日期是该年的第几天。
样例输入
2000-01-01
样例输出
1*/
#include<stdio.h>
int main()
{
int year,mon,day;
int jie;
while(scanf("%d-%d-%d",&year,&mon,&day)!=EOF)
{
if((year%4==0&&year%100!=0)||year%400==0)
{
if(mon==1)
jie=day;
if(mon==2)
jie=day+31;
if(mon==3)
jie=day+60;
if(mon==4)
jie=day+91;
if(mon==5)
jie=day+121;
if(mon==6)
jie=day+152;
if(mon==7)
jie=day+182;
if(mon==8)
jie=day+213;
if(mon==9)
jie=day+244;
if(mon==10)
jie=day+274;
if(mon==11)
jie=day+305;
if(mon==12)
jie=day+335;
}
else
{
if(mon==1)
jie=day;
if(mon==2)
jie=day+31;
if(mon==3)
jie=day+59;
if(mon==4)
jie=day+90;
if(mon==5)
jie=day+120;
if(mon==6)
jie=day+151;
if(mon==7)
jie=day+181;
if(mon==8)
jie=day+212;
if(mon==9)
jie=day+243;
if(mon==10)
jie=day+273;
if(mon==11)
jie=day+304;
if(mon==12)
jie=day+334;
}
printf("%d\n",jie);
}
return 0;
}
运行结果:
知识点总结:
通过学习,进一步巩固了EOF的用法。
学习心得:
这个代码输入时要自己输入“-”如何让"-"自己在那里呢?为未来的自己提一个问题,相信不久就会解决的。