C语言输入年月日计算该日是该年第几天,

如题所述

//根据用户输入的日期计算出该日期是该年的第多少天。
#include
#include
//system("pause")
main()
{
int year,month,day,total,leap; //total总天数 ,leap用于闰年的2月天数
printf("请输入年 月 日(按顺序,中间用空格隔开):");
scanf("%d%d%d",&year,&month,&day);
if((year%4==0 && year%100!=0) || year%400==0) //判断是否闰年,闰年2月多一天,所以闰年leap为1,平年为leap为0。
{
leap=1;
}
else
{
leap=0;
}
switch(month) //根据月份计算对应的最终天数。
{
case 1: total=day;break;
case 2: total=31*1+day;break;
case 3: total=31*1+28+leap+day;break;
case 4: total=31*2+28+leap+day;break;
case 5: total=31*2+28+leap+30*1+day;break;
case 6: total=31*3+28+leap+30*1+day;break;
case 7: total=31*3+28+leap+30*2+day;break;
case 8: total=31*4+28+leap+30*2+day;break;
case 9: total=31*5+28+leap+30*2+day;break;
case 10: total=31*5+28+leap+30*3+day;break;
case 11: total=31*6+28+leap+30*3+day;break;
case 12: total=31*6+28+leap+30*4+day;break; //12月之前的11个月中有6个31天,4个30天,2月为28天+leap。
}
if(year>=1 && year<=9999 && month>=1 && month<=12 && day>=1 && day<=31) //判断输入是否正解,年份最大为9999,可自行更改。
{
printf("\n\t%d月%d日止,%d年已过去%d天。\n\n",month,day,year,total);
system("pause"); //按任意键继续...
}
else
{
printf("\n\t错误\n\n");
system("pause"); //按任意键继续...
}
return 0;
}
温馨提示:答案为网友推荐,仅供参考
第1个回答  2019-08-19
#include
#include
int main()
{
int isLeapYear(int year);
int sumupDays;
int year,month,day,a=0,i;//a值初始化为0
int b[12]={31,28,31,30,31,30,31,31,30,31,30,31};
scanf("%d",&year);
scanf("%d",&month);
scanf("%d",&day);
for (i=1;i
2?isLeapYear(year):0)+day+a;//
printf("%d",sumupDays);
}
int isLeapYear(int year)
{ int leap;
if(year%400==0||(year%4==0&&year%100!=0))
leap=1;
else
leap=0;
return(leap);
}
第2个回答  2020-05-18
你这里面有好几处问题:
1、for
(i=1;i
评论
0
0
加载更多
第3个回答  2019-07-16
#include
#include
int
main()
{
int
isLeapYear(int
year);
int
year,month,day,a=0,i,p;
int
b[12]={31,28,31,30,31,30,31,31,30,31,30,31};
int
c[12]={31,29,31,20,31,30,31,31,30,31,30,31};
scanf("%d",&year);
scanf("%d",&month);
scanf("%d",&day);
p=isLeapYear(year);
if(month>1)
{
if(p==0)
for
(i=0;i
评论
0
0
加载更多
相似回答