用c语言从键盘任意输入一个日期(年月日),输出第二天的日期(年月日)。

2025-03-13 20:31:53
推荐回答(2个)
回答1:

#include
int main()
{
int s[2][13]={0,31,28,31,30,31,30,31,31,30,31,30,31,
0,31,29,31,30,31,30,31,31,30,31,30,31,};
int year=0;
int month=0;
int day=0;
int n,i,daytemp;
int flag=0;
int nyear=0,nmonth=0,nday=0;
printf("输入年月日\n");
scanf("%d%d%d",&year,&month,&day);
//printf("输入天数\n");
//scanf("%d",&n);
n=1;
if(year<0||month<0||month>12||day<1||n<0)
{
printf("输入数据错误\n");
return 1;
}
daytemp=day+n;//累加天数
if((year%4==0&&year%100!=0)||year%400==0)//闰年置1
flag=1;
if(day>s[flag][month])
{
printf("输入日期与年月不符.\n");
return 1;
}
if(daytemp<=s[flag][month])//当前日期加天数在本月
{
nyear=year;
nmonth=month;
nday=daytemp;
}
else
{
i=month;
nyear=year;
while(daytemp>s[flag][i])//循环递减,直到当前日期加天数在本月
{
daytemp=daytemp-s[flag][i];
i++;
if(i>12)//超过一年,年累加
{
nyear++;
if((nyear%4==0&&nyear%100!=0)||nyear%400==0)
flag=1;
else
flag=0;
i=i-12;
}
}
nmonth=i;
nday=daytemp;
}
printf("%d年%d月%d日第%d天后是:\n",year,month,day,n);
printf("%d年%d月%d日\n",nyear,nmonth,nday);
return 0;
}

回答2:

#include
int
main()
{
int
a,b,c;
scanf("%d
%d
%d",&a,&b,&c);//输入年月日
printf("%d
%d
%d",a,b,c++);//输出
return
0;
}
如上代码,满意请采纳