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

 我来答
来子真何恺
2019-11-23 · TA获得超过3万个赞
知道大有可为答主
回答量:1.1万
采纳率:31%
帮助的人:747万
展开全部
//根据用户输入的日期计算出该日期是该年的第多少天。
#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;
}
汤沉宰父友灵
2019-08-19 · TA获得超过3711个赞
知道大有可为答主
回答量:3100
采纳率:25%
帮助的人:383万
展开全部
#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);
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
小厨艺术家
2020-05-18 · TA获得超过3610个赞
知道大有可为答主
回答量:3063
采纳率:35%
帮助的人:403万
展开全部
你这里面有好几处问题:
1、for
(i=1;i
评论
0
0
加载更多
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
劳干邴映波
2019-07-16 · TA获得超过3608个赞
知道大有可为答主
回答量:3052
采纳率:24%
帮助的人:404万
展开全部
#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
加载更多
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 2条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式