#include "stdio.h"
void main()
{
/*year 年 month 月 month1 备份月数 day 日 day1 备份总体天数,day用于接收当月的天数,d1备份当月的天数。
s 计算当月之前的月的总天数 sum 天数总和
*/
int year,month,month1,day,day1,d1,sum=0,s=0;
printf("请输入年份:");
scanf("%d",&year);
fflush(stdin);
do
{
printf("请输入月份:");
scanf("%d",&month);
fflush(stdin);
if(month<1||month>12) //输入有误的提示
{
printf("您输入有误\n");
}
}while(month<1||month>12);//判断输入 月 是否有误
//1 3 5 7 8 10 12
//4 6 9 11
month1=month; //备份月数
month--; //month--:减去当前月总数,计算时,当月的总天数不用计入,(1月28,一月总天数31天不用算进去)
for(;month>=1;month--)
{
if(month==1||month==3||month==5||month==7||month==8||month==10||month==12)
{
day=31;
}else
if(month==4||month==6||month==9||month==11)
{
day=30;
}else
if(month==2)
{
if(year%4==0&&year%100==0||year%400==0)
{
day=28;
}else
{
day=29;
}
}
s=s+day;
}d1=day;
do{
printf("请输入日:");
scanf("%d",&day);
fflush(stdin);
day1=day;
if(day1<1||day1>d1)
printf("您输入有误\n");
}while(day1<1||day1>d1);
sum=day1+s; //总天数表达式
printf("%d月%d日是%d年的%d天",month1,day1,year,sum);
}
![]()