问题及代码
/*
烟台大学计算机与控制工程学院
文件名称: 第几天
作 者:展一
完成时间:2016年10月27日
题目描述
给定一个日期,输出这个日期是该年的第几天。
输入
输入数据有多组,每组占一行,数据格式为YYYY-MM-DD组成,具体参见sample input ,另外,可以向你确保所有的输入数据是合法的。
输出
对于每组输入数据,输出一行,表示该日期是该年的第几天。
样例输入
2000-01-01
样例输出
1
*/
#include <stdio.h>
int main()
{
int year,month,day;
int number;
int i;
while (scanf("%d-%d-%d",&year,&month,&day)!=EOF)
{
number=day;
for(i=1; i<month; i++)
{
if(i==1||i==3||i==5||i==7||i==8||i==10||i==12)
number+=31;
else
if (i==4||i==6||i==9||i==11)
number+=30;
else
number+=((year%4==0&&year%100!=0)||year%400==0)?29:28;
}
printf("%d\n",number);
}
return 0;
}
运行结果
知识点总结
循环结构的简单实用。
(语句1||语句2)?x:y的使用。
将一年按天数不同分为三类月份,输入月份后依次进行判断。
学习心得
不知道二月份天数的计算,到度娘搜索的公式,发现公式方面的不足。