8 求第几天
作者: Turbo时间限制: 1S章节: 循环
问题描述 :
按年、月、日的顺序读入一个日期,输出该日期是这一年中的第几天。
输入说明 :
输入数据为三个正整数y 、m、d,分别表示年、月、日,整数之间以空格分隔,在行首和行尾没有多余的空格。
输出说明 :
输出一个整数,表示输入的日期是这一年中的第几天,在行首和行尾没有多余的空格。
输入范例 :
2000 12 31
输出范例 :
366
解答思路:
没有什么需要注意的
AC代码
#include <stdio.h>
#include <math.h>
int day[2][12]={31,28,31,30,31,30,31,31,30,31,30,31,31,29,31,30,31,30,31,31,30,31,30,31};
int isrun(int year)
{
if(year%4!=0)
{
return 0;
}
else
{
if(year%100==0&&year%400!=0)
{
return 0;
}
else
{
return 1;
}
}
}
int main()
{
int y,m,d;
scanf("%d %d %d",&y,&m,&d);
int x=1;
int tempm=1,tempd=1;
while(tempm!=m||tempd!=d)
{
x++;
tempd++;
if(tempd>day[isrun(y)][tempm-1])
{
tempd=1;
tempm++;
}
}
printf("%d",x);
}