【id:27】【20分】E. 还有多少天过年(选择)
题目描述
输入一个日期,求该日期距离当年最后一天的天数。例如2016年12月10日,距离2016年底还有21天.
输入
输入某年某月某日
输出
输出距离最后一天还有多少天
本题主要考察switch的运用
#include<stdio.h>
int nian(int n);
int main()
{
int a,b,c,f;
scanf("%d %d %d",&a,&b,&c);
if(nian(a))
{
switch(b)
{
case 1:f=(31-c)+29+31+30+31+30+31+31+30+31+30+31;break;
case 2:f=(29-c)+31+30+31+30+31+31+30+31+30+31;break;
case 3:f=(31-c)+30+31+30+31+31+30+31+30+31;break;
case 4:f=(30-c)+31+30+31+31+30+31+30+31;break;
case 5:f=(31-c)+30+31+31+30+31+30+31;break;
case 6:f=(30-c)+31+31+30+31+30+31;break;
case 7:f=(31-c)+31+30+31+30+31;break;
case 8:f=(31-c)+30+31+30+31;break;
case 9:f=(30-c)+31+30+31;break;
case 10:f=(31-c)+30+31;break;
case 11:f=(30-c)+31;break;
case 12:f=(31-c);break;
}
}
else
{
switch(b)
{
case 1:f=(31-c)+28+31+30+31+30+31+31+30+31+30+31;break;
case 2:f=(28-c)+31+30+31+30+31+31+30+31+30+31;break;
case 3:f=(31-c)+30+31+30+31+31+30+31+30+31;break;
case 4:f=(30-c)+31+30+31+31+30+31+30+31;break;
case 5:f=(31-c)+30+31+31+30+31+30+31;break;
case 6:f=(30-c)+31+31+30+31+30+31;break;
case 7:f=(31-c)+31+30+31+30+31;break;
case 8:f=(31-c)+30+31+30+31;break;
case 9:f=(30-c)+31+30+31;break;
case 10:f=(31-c)+30+31;break;
case 11:f=(30-c)+31;break;
case 12:f=(31-c);break;
}
}
printf("%d\n",f);
return 0;
}
int nian(int n)
{
if((n%4==0&&n%100!=0)||(n%400==0))
{
return 1;
}
else
return 0;
}