永发信息网

C语言:输入年份和天数,输出对应的年、月、日

答案:2  悬赏:40  手机版
解决时间 2021-03-28 17:08
C语言:输入年份和天数,输出对应的年、月、日
最佳答案
下面是这段代码,配合注释体会一下吧

#include

void MonthDay(int year,int yearDay,int *pMonth,int *pDay);

int main()
{
int year,yearDay,month,day;
scanf("%d%d",&year,&yearDay);//输入年份和天数
MonthDay(year,yearDay,&month,&day);
printf("%d-%d-%d",year,month,day);
return 0;
}

void MonthDay(int year,int yearDay,int *pMonth,int *pDay)
{
int days[12]={31,28,31,30,31,30,31,31,30,31,30,31};//这个数组保存每月的天数
if(year%4==0&&year%100!=0||year%400==0)//判断是否为闰年
days[1]=29;//闰年的二月有29天
*pMonth=1;//从一月开始看
while(yearDay>days[*pMonth-1])//如果哪一天超出这个月
{
yearDay-=days[*pMonth-1];//求出超出此月的天数
(*pMonth)++;//继续考虑下一月
}
*pDay=yearDay;
}
全部回答
#include 
#define ISLEAP(y) ((y)%400==0||(y)%4==0&&(y)%100!=0)
void MonthDay(int year,int yearDay,int *pMonth,int *pDay);
int main(void) 
{
int year,yearDay,month,day;
while(scanf("%d%d",&year,&yearDay)!=EOF)
{
MonthDay(year,yearDay,&month,&day);
printf("%d-%d-%d ",year,month,day);
}
return 0;
}
void MonthDay(int year,int yearDay,int *pMonth,int *pDay)
{
int i,date[]={31,28,31,30,31,30,31,31,30,31,30,31};
for(i=0,*pMonth=1;yearDay>date[i];++i,++*pMonth)
{
yearDay-=i==1?date[i]+ISLEAP(year):date[i];
}
if(yearDay==0)
{
--*pMonth;
*pDay=*pMonth-1==1?date[*pMonth-1]+ISLEAP(year):date[*pMonth-1];
}
else
{
*pDay=yearDay;
}
}
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
济南市去到底哪里有陶吧?
填单位一什么-999什么等一什么
电焊立焊从上往下焊好还是从下往上焊好
一百以后十个十个写怎么写
绿色加什么颜色等于棕色?
linlin容貌管理地址在什么地方,想过去办事,
年支是月德贵人,月支也是天德贵人,日干是月
唱脸谱。你能从唱词中解读出脸谱所代表的含义
我现在一间美发店如何增加客流,或者说如何赚
英国蓝猫会放屁吗?我发现好像会
黑莓9780和诺基亚E72i哪个好
46.3x27.6 463x3 463x4.24怎么用简便计算?
2016年下半年考过的两科,剩下的一科今年考还
温年岁暖类似的小说
名侦探柯南 世界はあなたの色になるmp3 高音
推荐资讯
iphone6home键有点凹进去,怎么办?
I won’t leave until my work _________ tom
太原有CBA专卖店在哪啊
成语填空:( )( )化雨
莎娃有一个wta新闻官 的闺蜜叫什么
谁能告诉我微微一笑很倾城里面郑爽他们玩的那
东汉末年只有中国吗
青年配美瞳的尺寸是多少
预习提高,随堂巩固,课后提高这是什么书
王著教帝学书 中 你认为王著是一个什么样的人
选择采用网络推广的重要性在哪?谁做的比较好
雪铁龙c3-xr刚启动发动机怎么这样响
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?