C语言编程100题-2.8

2.8
输入公元年份和月份,输出该月份的天数。
如输入:
2018,3
则输出:
31

法一

#include "stdio.h"
int res[] = { 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 };     //利用数组
int main()
{
    int y, m;
    scanf_s("%d,%d", &y, &m);
    if (((y % 4 == 0 && y % 100 != 0) || y % 400 == 0) && m == 2)  printf("29");
    else  printf("%d", res[m - 1]);     //注意res[0]是1月
    system ("pause");
    return 0;
}

法二

#include
int main()
{
    int y, m, d;
    scanf_s("%d,%d", &y, &m);
    if (y % 4 == 0 && y % 100 != 0 || y % 400 == 0)//闰年
    {
        switch (m)
        {
        case 1:
            d = 31;
            break;
        case 2:
            d = 29;
            break;
        case 3:
            d = 31;
            break;
        case 4:
            d = 30;
            break;
        case 5:
            d = 31;
            break;
        case 6:
            d = 30;
            break;
        case 7:
            d = 31;
            break;
        case 8:
            d = 31;
            break;
        case 9:
            d = 30;
            break;
        case 10:
            d = 31;
            break;
        case 11:
            d = 30;
            break;
        case 12:
            d = 31;
            break;
        }
    }
    else//平年
    {
        switch (m)
        {
        case 1:
            d = 31;
            break;
        case 2:
            d = 28;
            break;
        case 3:
            d = 31;
            break;
        case 4:
            d = 30;
            break;
        case 5:
            d = 31;
            break;
        case 6:
            d = 30;
            break;
        case 7:
            d = 31;
            break;
        case 8:
            d = 31;
            break;
        case 9:
            d = 30;
            break;
        case 10:
            d = 31;
            break;
        case 11:
            d = 30;
            break;
        case 12:
            d = 31;
            break;
        }
    }
    printf("%d", d);
    return 0;
}

你可能感兴趣的:(编程例题)