閏年問題,因為二月份的天數與閏年有關。閏年的判斷依據是:若某年能被4整除,但不能被100整除,則這一年是閏年;若某年能被400整除,則這一年也是閏年
#include <stdio.h> #include <stdlib.h> main(){ int year, month, days; while (1) { printf("輸入年份:"); scanf("%d",&year); if (year==9999) break; printf("輸入月份:"); scanf("%d", &month); switch(month){ case 1: case 3: case 5: case 7: case 8: case 10: case 12: days=31; break; case 4: case 6: case 9: case 11: days=30; break; case 2: // 判斷閏年 if(year%4==0 && year%100!=0 || year%400==0) days=29; else days=28; break; default: printf("月份輸入錯誤!\n"); exit(1); break; } printf("天數:%d\n", days); } }
改進1:bz為1時表示月份輸入錯誤,不用輸出天數
#include <stdio.h> #include <stdlib.h> main(){ int year, month, days,bz; while (1) { bz=0; printf("輸入年份:"); scanf("%d",&year); if (year==9999) //break; exit(1); printf("輸入月份:"); scanf("%d", &month); switch(month){ case 1: case 3: case 5: case 7: case 8: case 10: case 12: days=31; break; case 4: case 6: case 9: case 11: days=30; break; case 2: // 判斷閏年 if(year%4==0 && year%100!=0 || year%400==0) days=29; else days=28; break; default: printf("月份輸入錯誤!\n"); bz=1; //exit(1); break; } if (bz==0) printf("天數:%d\n", days); } }