C语言:编程求任意月份的天数

闰年问题,因为二月份的天数与闰年有关。闰年的判断依据是:若某年能被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);  
    }
}

 

 
posted @ 2021-05-04 09:50  myrj  阅读(1595)  评论(0编辑  收藏  举报