2000年的1月1日,是那一年的第1天。 那么,2000年的5月4日,是那一年的第几天?
针对年份2000年
1 #include <stdio.h> 2 int main() 3 { 4 int days=0,m,n,i; 5 int month[12]={31,29,31,30,31,30,31,31,30,31,30,31}; 6 printf("请输入2000年的几月几日\n"); 7 scanf("%d%d",&m,&n); 8 if(m<1||m>12||n>month[m-1]) 9 { 10 printf("无效,请重新输入"); 11 printf("请输入2000年的几月几日\n",m,n); 12 scanf("%d%d",&m,&n); 13 } 14 for(i=0;i<m-1;i++) 15 days+=month[i]; 16 days+=n; 17 printf("2000年的%d月%d日,是那一年的第%d天\n",m,n,days); 18 getchar(); 19 getchar(); 20 return 0; 21 }
不针对年份 某年某月某日
1 #include <stdio.h> 2 int main() 3 { 4 int days=0; 5 int i; 6 int year,month,day; 7 int months[12]={31,28,31,30,31,30,31,31,30,31,30,31}; 8 printf("请输入某年的某月某日\n"); 9 scanf("%d%d%d",&year,&month,&day); 10 if(year%4==0&&year%100!=0||year%400==0) 11 { 12 months[1]=29; 13 } 14 while(month<1||month>12||day>months[month-1]) 15 { 16 printf("无效,请重新输入"); 17 printf("请输入某年的某月某日\n"); 18 scanf("%d%d%d",&year,&month,&day); 19 if(year%4==0&&year%100!=0||year%400==0) 20 { 21 months[1]=29; 22 } 23 else 24 months[1]=28; 25 } 26 for(i=0;i<month-1;i++) 27 days+=months[i]; 28 days+=day; 29 printf("%d年的%d月%d日,是%d年的第%d天\n",year,month,day,year,days); 30 getchar(); 31 getchar(); 32 return 0; 33 }