#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("您输入有误 "); } }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("您输入有误 "); }while(day1<1||day1>d1); sum=day1+s; //总天数表达式 printf("%d月%d日是%d年的%d天",month1,day1,year,sum); }