zoukankan      html  css  js  c++  java
  • C语言经典算法100例-004-年月日判断是年份的第几天

    题目如下:

    输入某年某月某日,判断这一天是这一年的第几天?

    1.分析问题:基本算法为之前月份的天数和加当前天,例如3月8日,需要用1,2月份的总天数加8。 但要考虑特殊情况,如果是闰年,那么2月不再是28天,而是29天,此时如果月份大于2,那么之前月份的天数和则应加1才对。

    2.源代码:

    #include <stdio.h>
    #include <stdlib.h>
    int main()
    {
        int year,month,day;
        int sum;
        int leap;
        printf("Please input the date(Like 1990-10-22)!
    ");
        scanf("%d-%d-%d",&year,&month,&day);
    
        switch(month)
        {
        case 1:
            sum=0;
            break;
        case 2:
            sum=31;
            break;
        case 3:
            sum=59;
            break;
        case 4:
            sum=90;
            break;
        case 5:
            sum=120;
            break;
        case 6:
            sum=151;
            break;
        case 7:
            sum=181;
            break;
        case 8:
            sum=212;
            break;
        case 9:
            sum=243;
            break;
        case 10:
            sum=273;
            break;
        case 11:
            sum=304;
            break;
        case 12:
            sum=334;
            break;
        default:
            printf("Data error
    ");
            return 0;
            break;
        }
        sum+=day;
        leap=year%400==0||(year%4==0&&year%100!=0)?1:0;     //判断是否为闰年 四年一闰;百年不闰,四百年再闰
        sum+=leap==1&&month>2?1:0;                          //是闰年且月份大于2的需要加一天
        printf("This is %d the %dth day!
    ",year,sum);
        return 0;
    }


  • 相关阅读:
    input 放大镜
    记住密码弹出事件
    thinkphp修改及编写标签库,编辑器的使用
    thinkphp 配合mongodb
    缓存技术
    php面试题目
    pdo 整套类的封装,保存修改查询
    mongodb 的备份恢复导入与导出
    mongodb 分组查询
    smarty 模板的入门使用
  • 原文地址:https://www.cnblogs.com/mrbourne/p/9959518.html
Copyright © 2011-2022 走看看