3399 - 习题7-18 日期计算
时间限制 : 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); }