/* Note:Your choice is C IDE */ #include "stdio.h" void main() { int y,m,d;//年、月、日 int cr,ds=0,i;//cr:判斷是否為閏年的變量,是為1,否為0;ds:天數的總和;i是一個循環變量 char run[12] = {31,29,31,30,31,30,31,31,30,31,30,31};//閏年的每月的天數 char ping[12] = {31,28,31,30,31,30,31,31,30,31,30,31};//平年的每月的天數 printf("請輸入你要查詢的年份:\n"); scanf("%d",&y);//輸入年份 cr = y%4==0&&y%100!=0||y%400==0;//判斷是否為閏年,是為1,否為0 do{ printf("請輸入月份:\n"); scanf("%d",&m);//輸入月份 if(m<0||m>12){//判斷有沒輸入錯誤 printf("輸入有誤,請重新輸入!\n");} }while(m<0||m>12);//有錯重新輸入 do{ printf("請輸入日期:\n"); scanf("%d",&d);//輸入日期 if(d>31){//判斷有沒有輸入大於31號的 printf("輸入有誤,請重新輸入!(一個月最多有31天)\n"); }else if(d>run[m-1]&&cr==1)//判斷閏年某天數是否在該月的最多天數內 { printf("%d月最多有%d天,請重新輸入!\n",m,run[m-1]); }else if(d>ping[m-1]&&cr==0)//判斷平年某天數是否在該月的最多天數內 { printf("%d月最多有%d天,請重新輸入!\n",m,ping[m-1]); } }while((d>run[m-1]&&cr==1)||(d>ping[m-1]&&cr==0)); if(cr == 1){//計算閏年的某天在該年的總天數 for(i=0;i<m-1;i++){ ds += run[i]; } }else {//計算平年的某天在該年的總天數 for(i=0;i<m-1;i++){ ds += ping[i]; } ds += d;//加上當月的天數 printf("%d年%d月%d日是該年的第%d天!",y,m,d,ds); } }