1453 - C语言-第几天

通过次数

0

提交次数

0

时间限制 : 1 秒 内存限制 : 128 MB

定义一个结构体变量(包括年、月、日)。计算该日在本年中是第几天,注意闰年问题。

题目输入

年月日

题目输出

当年第几天

输入/输出样例

输入格式

2000 12 31

输出格式

366

C语言解答

int main(int argc, char* argv[])
{
	int year,mon,day,v,sum,i;
	int month[]={0,31,28,31,30,31,30,31,31,30,31,30,31};
	while(~scanf("%d%d%d",&year,&mon,&day))
	{
	    v=sum=0;
	   if(year%400==0||(year%100!=0&&year%4==0))
	     v=1;
	
	   for(i=1;i<mon;i++)
	   {
	   sum+=month[i];
	   if(i==2&&v==1)
		   sum++;
	   }
	   sum+=day;
	   printf("%d\n",sum);
	}
	return 0;
}

C++解答

#include <iostream>
using namespace std;
struct DATA
{
	int y;
	int m;
	int d;
};
int main() 
{
	struct DATA data;
	int m2;
	int day;
	cin>>data.y>>data.m>>data.d;
	if((data.y%4==0&&data.y%100!=0)||data.y%400==0)
		m2=29;
	else m2=28;
	switch(data.m-1)
	{
	case 0:
		day=0;break;
	case 1:
		day=31;break;
	case 2:
		day=31+m2;break;
	case 3:
		day=31+m2+31;break;
	case 4:
		day=31+m2+31+30;break;
	case 5:
		day=31+m2+31+30+31;break;
	case 6:
		day=31+m2+31+30+31+30;break;
	case 7:
		day=31+m2+31+30+31+30+31;break;
	case 8:
		day=31+m2+31+30+31+30+31+31;break;
	case 9:
		day=31+m2+31+30+31+30+31+31+30;break;
	case 10:
		day=31+m2+31+30+31+30+31+31+30+31;break;
	case 11:
		day=31+m2+31+30+31+30+31+31+30+31+30;break;
	default:
		cout<<"参数错误!"<<endl;break;
	}
	cout<<day+data.d;
	return 0;
}