用C语言编程 输入日期 输出这一天是该年的第几天

如题所述

我大概给个思路,代码是现写的
没调试
先定义每个月的天数,2月按28天算
输入年月日后,根据年判断是否闰年(闰年加1天),再从1月加到当月的前一月,再加上日期就可以了
#include
int
month[12]
=
{31,28,31,30,31,30,31,31,30,31,30,31};
main()
{
int
yy,mm,dd,
days;
int
i;
printf("input
year:");
scanf("%d",
&yy);
printf("input
month:");
scanf("%d",
&mm);
printf("input
day:");
scanf("%d",
&dd);
/*
如果大于2月,要做闰年的判断,忘了,不一定准
*/
if(
mm
>
2
&&
((year%4==0
&&
year%100!=0)
||
year%400==0)
)
days
=
1;
else
days
=
0;
/*
加上前面各整月的天数
*/
for(i
=
0;
i
<
mm-1;
i++)
days
+=
month[i];
/*
加上日数
*/
days
+=
dd;
printf("this
is
the
%d
day
of
year
%d!!\n",
days,
yy);
}
比如输入
1999
2
1
应该输出:this
is
the
32
day
of
year
1999!!
温馨提示:答案为网友推荐,仅供参考
第1个回答  推荐于2016-03-20
#include<stdio.h>
void main()
{
int nian,yue,ri,leap,sum;
printf("\n 请输入年月日: \n");
scanf("%d%d%d",&nian,&yue,&ri);
switch(yue)
{
case 1:sum=0;
break;
case 2:sum=31;
break;
case 3:sum=59;
break;
case 4:sum=90;
break;
case 5:sum=120;
break;
case 6:sum=151;
break;
case 7:sum=181;
break;
case 8:sum=212;
break;
case 9:sum=243;
break;
case 10:sum=273;
break;
case 11:sum=304;
break;
case 12:sum=334;
break;
default:
printf("\n 数据错误 \n");
}
sum=sum+ri;
if((nian%400==0) ||(nian%4==0 && nian%100!=0 ))
leap=1;
else
leap=0;
if(leap==1 && nian>3)
sum++;
printf("\n 这一天是这一年的第 %d 天 \n",sum);
}本回答被提问者采纳
第2个回答  2008-04-28
#include "stdio.h"
struct
{int year;
int month;
int day;
}date;
void main()
{int i,days;
int _tab[0,31,28,31,30,31,30,31,31,30,31,30,31};
printf("input year,month,day:");
scanf("%d,%d,%d",&date.year,&date.month,&date.day);
days=0;
for(i=1;i<date.month;i++)
days=days+da_tab[i];
days=days+date.day;
if((date.year%4==0&&date.year%100==0||date.year%400==0)&&date.month>=3)
days+=1
printf("%d/%d is the %dth day in %d.\n"date.month,date.day,days,date.year);
}
相似回答