计算某天是一年中的某一天

来源:互联网 发布:大数据在医疗的应用 编辑:程序博客网 时间:2024/05/22 06:28
#include <stdio.h>
int main(void)
{
    int n=0;int y=0;int r=0;
    int a=31;int b=30;int c=28; int d=29;int e=0;
    int i=0;int k=0;
    int *p[12];
    p[0]=&e; p[1]=&a; p[3]=&a; p[5]=&a; p[7]=&a; p[8]=&a; p[10]=&a;p[12]=&a;
    p[4]=&b; p[6]=&b; p[9]=&b; p[11]=&b;
    printf("输入年份:");
    scanf("%d",&n);
    printf("输入月份:");
    scanf("%d",&y);
    A:    printf("输入日期:");
    scanf("%d",&r);
    if(n%4!=0)
    {
        if(y==2 && r>28)
        {
            printf("平年2月28天\n");
            goto A;
        }
        p[2]=&c;
        for(i=1;i<=y;i++)
        {
            k=k+*p[i-1];
        }
        k=k+r;
    }
    else if(n%100==0)
    {
        if(y==2 && r>29)
        {
            printf("平年2月29天\n");
            goto A;
        }
        if(n%400==0)
        {
            p[2]=&d;
            for(i=1;i<=y;i++)
            {
            k=k+*p[i-1];
            }
        k=k+r;
        }
        else
        {
            if(y==2 && r>28)
            {
                printf("平年2月28天\n");
                goto A;
            }
            p[2]=&c;
            for(i=1;i<=y;i++)
            {
                k=k+*p[i-1];
            }
        k=k+r;
        }
    }
    else
    {
        if(y==2 && r>29)
        {
            printf("润年2月29天\n");
            goto A;
        }
        p[2]=&d;
        for(i=1;i<=y;i++)
        {
            k=k+*p[i-1];
        }
        k=k+r;
    }

    printf("今天是第%d天\n",k);

    return 0;
}
0 0