題目:輸入某年某月某日,判斷這一天是這一年的第幾天?
程序分析:以3月5日為例,應該先把前兩個月的加起來,然后再加上5天即本年的第幾天,特殊情況,閏年且輸入月份大於3時需考慮多加一天。
程序源代碼:
1 #include<stdio.h>
2 int main() 3 { 4 int year, month, day; 5 int flag; 6 int base, sum; 7 printf("請輸入年月日:\n"); 8 scanf("%d,%d,%d",&year,&month,&day); 9 //先判斷是不是閏年
10 if(year%400==0||(year%4==0&&year%100!=0)) 11 flag = 1; 12 switch(month) 13 { 14 case 1: base = 0; break; 15 case 2: base = 31; break; 16 case 3: base = 31+28; break; 17 case 4: base = 31*2+28; break; 18 case 5: base = 31*2+28+30; break; 19 case 6: base = 31*3+28+30; break; 20 case 7: base = 31*3+28+30*2; break; 21 case 8: base = 31*4+28+30*2; break; 22 case 9: base = 31*5+28+30*2; break; 23 case 10: base = 31*5+28+30*3; break; 24 case 11: base = 31*6+28+30*3; break; 25 case 12: base = 31*6+28+30*4; break; 26 } 27 if(flag == 1 && month > 2) 28 sum = base + day + 1; 29 else
30 sum = base + day; 31 printf("%d的第%d天\n",year,sum); 32
33 return 0; 34 }
運行結果: