签到

06月21日
尚未签到

共有回帖数 0

    岁月流逝

    等级:
    #include stdio.h

    char D[] = {0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};
    char W[][3] = {"日", "一", "二", "三", "四", "五", "六"};
    char M[] = {0, 0, 4, 4, 1, 6, 3, 1, 5, 2, 0, 4, 2};
    char Y[] = {
           5, 6, 0, 1, 3, 4, 5,
           6, 1, 2, 3, 4, 6, 0,
           1, 2, 4, 5, 6, 0, 2,
           3, 4, 5, 0, 1, 2, 3
    };
    #define month(m) ((m)  0 && (m)  13)
    #define leap(y) (!((y)%4)&&((y)%100)||!((y)%400))
    #define day(y, m, d) (D[(m)] + ((m) == 2 && leap(y)))
    #define date(y, m, d) (month(m) && 0  d && d = day(y,m,d))
    #define year(y) ((y)  0? (28-(-(y))%28)%28: (y) % 28)
    #define week(y, m, d) ((Y[year(y)]-M[(m)]-(leap(y)&&(m)3)+(d)%7+7)%7)

    int main(void)
    {
           int y, m, d;

           printf("输入年月日,判断星期:");
           while (scanf("%d%d%d", &y, &m, &d) && !date(y, m, d))
                   printf("输入的日期有误,重新输入:");
           printf("%d年%02d月%02d日是星期%sn", y, m, d, W[week(y, m, d)]);

           return 0;
    }

    楼主 2016-01-23 11:19 回复

共有回帖数 0
  • 回 帖
  • 表情 图片 视频
  • 发表

登录直线网账号

Copyright © 2010~2015 直线网 版权所有,All Rights Reserved.沪ICP备10039589号 意见反馈 | 关于直线 | 版权声明 | 会员须知