3399 - 习题7-18 日期计算

通过次数

0

提交次数

0

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

写一个函数,给定年、月、日,计算该日期是该年的第几天。在主函数中输入一个日期(含年、月、日),通过函数调用,得到该日期所对应这一年的第几天,并输出该数值。

题目输入

三个以空格分隔的整数,分别表示该日期的年、月、日。

题目输出

输入日期所对应这一年的第几天,一个整数,单独占一行。

输入/输出样例

输入格式

2014 3 8

输出格式

67

C语言解答

#include<stdio.h>
int count(int a[12],int b[12],int year,int mounth,int day)
{ int i,sum=0; if(year%4==0&&year%100!=0||year%400==0)
 for(i=0;i<mounth-1;i++)
 {  sum+=a[i];  }
else  for(i=0;i<mounth-1;i++) { 
	sum+=b[i];
} sum+=day;
return(sum);
}
void main(){ 
	int year,mounth,day,m;
	int a[12]={31,29,31,30,31,30,31,31,30,31,30,31},b[12]={31,28,31,30,31,30,31,31,30,31,30,31}; 
	 scanf("%d %d %d",&year,&mounth,&day);
	 m=count(a,b,year,mounth,day); 
	printf("%d\n",m);
	}

C++解答

#include<stdio.h>
int main()
{int zong(int yue,int ri);
 int nunnian(int nian);
 int nian,yue,ri,tian;
 scanf("%d%d%d",&nian,&yue,&ri);
 tian=zong(yue,ri);
 if(nunnian(nian)&&yue>=3)
   tian=tian+1;
 printf("%d\n",tian);
 return 0;
}

int zong(int yue,int ri)
{
  int ri_tab[13]={0,31,28,31,30,31,30,31,31,30,31,30,31};
  int l;
  for(l=1;l<yue;l++)
    ri+=ri_tab[l];
  return(ri);
}

int nunnian(int nian)
{int nunnian;
 nunnian=nian%4==0&&nian%100!=0||nian%400==0;
 return(nunnian);
 }